htmleditorpro使用方法

htmleditorpro使用方法,第1张

1、首先在需要嵌入得位置加入以下html代码。

2、其次所有需要提交的内容都放在一个表单里面,同样利用object调用的编辑器也放在这个表单里面,同时可以设置一个隐藏的文本区域(或)用以在提交的时候临时保存html在线编辑器的数据。

3、然后点击插入的按钮时d出一个上传的窗口,利用自己写的程序来实现上传本机到服务器上,需要记录的路径,通过html在线编辑器的值中加入显示的html标签。

4、在添加的时候将HTML在线编辑器来修改数据提交到数据库后还需要能将数据库的内容用HTML在线编辑器来修改数据。

思路,把数据库里的内容保存成HTML文件,再使用JAVASCRIPT把内容得到后,再回写到数据库中,

testhtml

<html>

<head>

<title>testhtml</title>

<script type="text/javascript">

function getContent() {

var divTags = documentgetElementsByTagName("div");

var contents;

for(var i in divTags) {

contents += divTags[i]innerHTML;

}

return contents;

}// end of function

</script>

</head>

<body>

<div id="div1">

content1

</div>

<div di="div2">

content2</div>

</body>

</html>

有什么问题可以交流的哈,HI我

你没有把ckeditor注册到页面去,所以就找不到value

<add tagPrefix="FCKeditorV2" namespace="FredCKFCKeditorV2" assembly="FredCKFCKeditorV2" />在webcomfig里面注册

<FCKeditorV2:FCKeditor ID="ckeditor1" runat="server" Height="400px" Width="700px">

</FCKeditorV2:FCKeditor>

我用的fck,方法差不多一个意思

ckeditor1value

就可以了

开发方法如下:

1添加一个可编辑的iframe

实现HTML编辑器的第1步就是在网页中放置一个可编辑的iframe用来输入文本,使iframe可编辑方法相当简单,只需要将iframe的designMode设置为on即可,具体步骤如下:

[javascript] view plaincopy

var editor = documentgetElementById("IFRAME的ID");

var editorDoc = editorcontentWindowdocument;

var editorWindow = editorcontentWindow;

editorDocdesignMode = "on";

editorDocopen();

editorDocwrite("<html><head></head><body style='margin:0px; padding: 0px;'></body></html>");

editorDocclose();

2设置选中文本的样式

设置选中文本样式的方法最简单的方式就是使用documentexecCommand,但是execCommand功能比较局限,有时不能满足需求,例如:execCommand设置字体大小只能是1-7,不能使用像素大小,而且如果你在点击工具栏按钮到调用execCommand的过程中点击了其他的DIV,iframe的选中内容会消失,这时调用execCommand是无效的。因此本文介绍另一种方法,基本思路如下:

(1) 获取选中的HTML;

(2) 修改HTML的样式;

(3) 用修改后的HTML替换选中的HTML。

21 获取选中的HTML

在不同的浏览器中获取选中的HTML的方法是不同的,在IE中可以使用

[javascript] view plaincopy

var range = documentselectioncreateRange()

在Firefox,Chrome中则使用

[javascript] view plaincopy

var range = windowgetSelection()getRangeAt(0);

22 替换选中的HTML

通过21的方法获取了表示选中内容的对象后,就可以调用其方法来替换掉选中的内容。在不同的浏览器中替换选中的HTML的方法有所差异,在IE中可以只需调用rangepasteHTML就行了,在Firefox,Chrome中则使用rangedeleteContents 和 rangeinsertNode 两个方法来实现

23 封装一个 *** 作选中HTML的类

由于21中获取的range对象的方法在不同浏览器中差异很大,因此,为了方便实现21和22提到的两个 *** 作,封装了一个 *** 作选中HTML的类SelectionRange,该类有两个方法,GetSelectedHtml和Replace,分别用于获取HTML和替换HTML。其代码如下:

[javascript] view plaincopy

//用于记录浏览器的类型

var browser = {};

var ua = navigatoruserAgenttoLowerCase();

browsermsie = (/msie ([\d]+)/)test(ua);

browserfirefox = (/firefox\/([\d]+)/)test(ua);

browserchrome = (/chrome\/([\d]+)/)test(ua);

//获取多个节点的HTML

function GetInnerHTML(nodes)

{

var builder = [];

for (var i = 0; i < nodeslength; i++)

{

if (nodes[i]nodeValue != undefined)

{

builderpush(nodes[i]innerHTML);

}

else

{

if (nodes[i]textContent) builderpush(nodes[i]textContentreplace(/\</ig, function() { return "<"; }));

else if (nodes[i]nodeValue) builderpush(nodes[i]nodeValuereplace(/\</ig, function() { return "<"; }));

}

}

return builderjoin("");

}

function SelectionRange(doc, range)

{

//获取选中的内容的HTML

thisGetSelectedHtml = function()

{

if (range == null) return "";

if (browsermsie)

{

if (rangehtmlText != undefined) return rangehtmlText;

else return "";

}

else if (browserfirefox || browserchrome)

{

return GetInnerHTML(rangecloneContents()childNodes);

}

else

{

return "";

}

}

//用html替换选中的内容的HTML

thisReplace = function(html)

{

if (range != null)

{

if (browsermsie)

{

if (rangepasteHTML != undefined)

{

//当前选中html可能以为某种原因(例如点击了另一个DIV)而丢失,重新选中

rangeselect();

rangepasteHTML(html);

return true;

}

}

else if (browserfirefox || browserchrome)

{

if (rangedeleteContents != undefined && rangeinsertNode != undefined)

{

//将文本html转换成DOM对象

var temp = doccreateElement("DIV");

tempinnerHTML = html;

var elems = [];

for (var i = 0; i < tempchildNodeslength; i++)

{

elemspush(tempchildNodes[i]);

}

//删除选中的节点

rangedeleteContents();

//将html对应的节点(即temp的所有子节点)逐个插入到range中,并从temp中删除

for (var i in elems)

{

tempremoveChild(elems[i]);

rangeinsertNode(elems[i]);

}

return true;

}

}

}

return false;

}

}

与此同时,还实现了一个函数GetSelectionRange用于获取当前选中文本对应的SelectionRange对象,

[javascript] view plaincopy

function GetSelectionRange(win)

{

var range = null;

if (browsermsie)

{

range = windocumentselectioncreateRange();

if (rangeparentElement()document != windocument)

{

range = null;

}

}

else if (browserfirefox || browserchrome)

{

var sel = wingetSelection();

if (selrangeCount > 0) range = selgetRangeAt(0); else range = null;

}

return new SelectionRange(windocument, range);

}

24 修改选中的HTML的样式

修改选中的HTML的样式方法并不复杂,只需要将HTML转成DOM对象,然后递归的设置每一个节点对应的样式的值即可,具体代码如下:

[javascript] view plaincopy

function SetNodeStyle(doc, node, name, value)

{

if (nodeinnerHTML == undefined)

{

return node;

}

else

{

nodestyle[name] = value;

for (var i = 0; i < nodechildNodeslength; i++)

{

var cn = nodechildNodes[i];

if (nodeinnerHTML != undefined)

{

SetNodeStyle(doc, cn, name, value);

}

}

return node;

}

}

function SetStyle(doc, html, name, value)

{

var dom = doccreateElement("DIV");

dominnerHTML = html;

for (var i = 0; i < domchildNodeslength; i++)

{

var node = domchildNodes[i];

if (nodeinnerHTML == undefined)

{

//如果是文本节点,则转换转换成span

var span = doccreateElement("SPAN");

spanstyle[name] = value;

if (nodenodeValue != undefined) spaninnerHTML = nodenodeValuereplace(/\</ig, function() { return "<"; });

else if (nodetextContent != undefined) spaninnetHTML = nodetextContentreplace(/\</ig, function() { return "<"; });

//替换掉文本节点

domreplaceChild(span, node);

}

else

{

SetNodeStyle(doc, node, name, value);

}

}

return dominnerHTML;

}

25 示例

使用以上的代码,就可以相当方便的实现一个HTML编辑器,例如,以下代码实现将选中文本的字体大小设置为32px:

[javascript] view plaincopy

var range = GetSelectionRange(editorWindow);

var html = SetStyle(editorDoc, rangeGetSelectedHtml(), "fontSize", "32px");

rangeReplace(html);

同理,你可以实现设置行距,缩进,插入等功能。

以上就是关于htmleditorpro使用方法全部的内容,包括:htmleditorpro使用方法、请问使用editor时读取数据的时候去掉HTML标签,主要纯文本!、.net下用ckeditor编辑完文本后,如何在按下button按钮后获取编辑器中的html代码,这样我就可以存入sql中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9495440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存