163的在线编辑器简析和配置使⽤
fck的功能确实很多,这个163的编辑器也是⼩⽹站不错的选择。
附件中有163编辑器的源代码。
163Editor 编辑器概览
编辑器的源代码结构
不难发现,编辑的页⾯其实是editor.html.
打开editor.html,
这个html⽂件有以下⼏部分组成:
1. <body>
2. <table width="100%" border="0" cellpadding="0" cellspacing="0" background="images/bg.gif" ……
3. ……………………………………………………………………………………
4. 这⾥的内容请读者⾃⼰查看源代码这部分的代码……………………………………………
5. 就是编辑器的⼯具栏,主要是⼀些图⽚按钮以及事件……………………
6. ……………………………………………………………………………………
7. ……………………………………………………………………………………
接下去是编辑区域:
1. <div id="divEditor">
2.              <SCRIPT LANGUAGE="JavaScript">
3.                  <!--
4. if (document.all) {
5.                      document.write('<table width="100%" height:287px border="0" cellspacing="0" cellpadding="0" ><tr>
<td >
<IFRAME class="HtmlEditor" ID="HtmlEditor" name="HtmlEditor" frameBorder="0" marginHeight=0 marginWidth=0 src="blankpage.htm"> </IFRAME></td></tr></table>');
6.                  }
7. else {
8.                      document.write('<table width="100%" height:288px border="0" cellspacing="0" cellpadding="0" ><tr>
<td >
<IFRAME class="HtmlEditor" ID="HtmlEditor" name="HtmlEditor" frameBorder="0" marginHeight=0 marginWidth=0 src="blankpage.htm"></IFRAME></td></tr></table>');
9.                  }
10. //-->
11.              </SCRIPT>
12.          </div>
13.          <SCRIPT LANGUAGE="JavaScript">
14.              <!--
15. if (document.all) {
16.                  document.write('<textarea ID="sourceEditor" >');
17.              }
18. else {
19.                  document.write('<textarea ID="sourceEditor" >');
20.              }
21.
22. //-->
23.          </SCRIPT>
这是说明⼏点:
Editor.html 中其实是有两个⽂本区域,分别是
<IFRAME  ID="HtmlEditor" name="HtmlEditor" 和
<textarea ID="sourceEditor"
这⾥还有⼀点是:
此处的iframe⼜src了个页⾯ blankpage.html
所以,得出⼀个⽐较重要的结论:163编辑器的编辑区域中的内容最终是显⽰blankpage.html中的内容,也就是说⽤户其实是在编辑这个页⾯
⾄此,editor.html
分析editor.html中包含进的⼏个js⽂件
script/editfunc.js
这个⽂件定义了编辑器的⼏个核⼼function
这个js中的全局变量:
1. var gSetColorType = "";
2. //document.all是ie浏览器特有的属性  gIsIE⽤于判断当前浏览器是否是IE
网站源码在线
3. var gIsIE = document.all;
4. var gIEVer = fGetIEVer();    //获取当前使⽤的IE的version
5. //页⾯是否全部加载完毕,包括所有图⽚和⽂字。
6. //gLoaded的属性在load = function(){……}执⾏后变为true
7. var gLoaded = false;
8. var ev = null;
9.
10. ⼊⼝函数:
11. /*
12.  * 当前页⾯中的全部内容都加载完毕后,执⾏这个函数
13.  */
14. load = function()
15. {
16. try{
17.        gLoaded = true;      //把这个量的值改成true,表⽰页⾯已经加载完毕了
18.        fSetEditable();      //把页⾯上的指定的iframe变成编辑模式
19.        fSetFrmClick();
20.        ResetDomain();
21.        fSetHtmlContent();
22.        top.frames["jsFrame"].fHideWaiting();
23.    }
24. catch(e)
25.    {
26. // load();
27.    }
28. }
在线html编辑器的原理基本类似,都是iframe标签中⽤src属性包含⼀个html⽂件,⽤户编辑的时候事实上就是在编辑这个⽂件。当然,iframe必须为可编辑状态。
如 163Editor中:(163Editor.html)
1. <iframe  src="editor/editor.html?id=content"    frameborder="0"  scrolling="no"  width="700" height="320"> </iframe>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。