随笔 - 11  文章 - 0 评论 - 14 trackbacks - 0
<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

Locations of visitors to this page

与我联系

搜索

 

常用链接

留言簿

我的标签

随笔分类

随笔档案

相册

收藏夹

CSDN

积分与排名

  • 积分 - 3778
  • 排名 - 5946

最新评论

阅读排行榜

评论排行榜

因工作需要,需使用javascript来操作HTML在线编辑器,在网上搜了许多,都是与服务器端相结合的,通过表单提交的方式来处理的。没办法,只好在此基础上对其进行更新! 
参考的myeditor控件不知是哪位高人写的。在此表示感谢
首先,定义一全局变量,用于向HtmlEditor传递值:
var EDITOR_DEFAULT_VALUE = "";                //全局变量,用于向Editor控件传递值

原先控件的editfunc.js中的代码注掉了很多,删除掉了作为get方式传递的TextArea对象。

editfunc.js中设置初值的方法,作了改变:
function fSetHtmlContent()
{
    
var ovalue = window.parent.EDITOR_DEFAULT_VALUE;
    
var html = ovalue;
    
if (html)
    
{
        
var header = "<head><link rel="stylesheet" type="text/css" href="editorArea.css" /></head><body MONOSPACE>" ;
        
var f = window.frames["HtmlEditor"];
        f.document.open();
        
//f.document.getElementsByTagName("BODY")[0].innerHTML = oLinkField.value;
        f.document.write(header + html);
        f.document.close();
    }

}

我是用的动态生成方式,通过点击按钮生成HtmlEditor:

代码如下:

//containername:存放iframe的容器名称 framename:HtmlEditor的iframe名称 editorpath:编辑器index.html的路径
function createEditor(containername,framename,editorpath)
{
    
if(!document.getElementById(framename))
    
{
        
var HTMLEDITOR = document.createElement("iframe");
        HTMLEDITOR.id 
= framename;
        HTMLEDITOR.name 
= framename;
        HTMLEDITOR.src 
= editorpath;
        HTMLEDITOR.frameBorder 
= "0";
        HTMLEDITOR.marginHeight 
= "0";
        HTMLEDITOR.marginWidth 
= "0";
        HTMLEDITOR.height 
= "238";
        HTMLEDITOR.width 
= "400";
        
        document.getElementById(containername).appendChild(HTMLEDITOR);
    }

}

设置HtmlEditor的值的代码:

//设置HtmlEditor的文本 framename:HtmlEditor的iframe名称 html_text:带格式的文本
function setEditorText(framename,html_text)
{    
    HtmlEditor_Default_Value 
= html_text;
    
    
if(window.frames[framename].frames["HtmlEditor"!= null)
    
{
        
var html = window.frames[framename].frames["HtmlEditor"].document.getElementsByTagName("BODY")[0];
        html.innerHTML 
= HtmlEditor_Default_Value;
    }

}

获得HtmlEditor的值的代码:

//获得HtmlEditor的带格式文本 framename:HtmlEditor的iframe名称
function getEditorHTML(framename)
{
    
var html = window.frames[framename].frames["HtmlEditor"].document.getElementsByTagName("BODY")[0].innerHTML;
    
if ( (html.toLowerCase() == "<p>&nbsp;</p>"|| (html.toLowerCase() == "<p></p>") )
    
{
        html 
= "";
    }

    
return html;
}
js源代码如下:
var EDITOR_DEFAULT_VALUE = "";                //全局变量,用于向Editor控件传递值

function init()
{
    
var obj = document.getElementById("taContent");
    obj.value 
= "<b>粗体</b><i>斜体</i>";
}


//containername:存放iframe的容器名称 framename:HtmlEditor的iframe名称 editorpath:编辑器index.html的路径
function createEditor(containername,framename,editorpath)
{
    
if(!document.getElementById(framename))
    
{
        
var HTMLEDITOR = document.createElement("iframe");
        HTMLEDITOR.id 
= framename;
        HTMLEDITOR.name 
= framename;
        HTMLEDITOR.src 
= editorpath;
        HTMLEDITOR.frameBorder 
= "0";
        HTMLEDITOR.marginHeight 
= "0";
        HTMLEDITOR.marginWidth 
= "0";
        HTMLEDITOR.height 
= "238";
        HTMLEDITOR.width 
= "400";
        
        document.getElementById(containername).appendChild(HTMLEDITOR);
    }

}


//设置初始值
function setEditorDefaultValue(text)
{
    EDITOR_DEFAULT_VALUE 
= text;
}


//得到textarea的值
function getTextareaValue()
{
    
var obj = document.getElementById("taContent");
    
return obj.value;
}


//获得HtmlEditor的带格式文本 framename:HtmlEditor的iframe名称
function getEditorHTML(framename)
{
    
var html = window.frames[framename].frames["HtmlEditor"].document.getElementsByTagName("BODY")[0].innerHTML;
    
if ( (html.toLowerCase() == "<p>&nbsp;</p>"|| (html.toLowerCase() == "<p></p>") )
    
{
        html 
= "";
    }

    
return html;
}


//设置HtmlEditor的文本 framename:HtmlEditor的iframe名称 html_text:带格式的文本
function setEditorText(framename,html_text)
{    
    HtmlEditor_Default_Value 
= html_text;
    
    
if(window.frames[framename].frames["HtmlEditor"!= null)
    
{
        
var html = window.frames[framename].frames["HtmlEditor"].document.getElementsByTagName("BODY")[0];
        html.innerHTML 
= HtmlEditor_Default_Value;
    }

}

源代码:http://files.cnblogs.com/redleaf1995/editor.rar
posted on 2008-04-16 11:35 红色枫叶 阅读(378) 评论(0)  编辑 收藏 所属分类: javascript、Web页面设计开发

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-16 14:16 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: