行业分类
js 获取 eWebEditor 的内容
日期:2008-12-29 14:18  点击:1272

最近想使用一个html编辑器,而我想获取的值又是通过客户端面的,想起以前使用过 eWebEditor 在线编辑器还不错,

但是以前的获取值都是在后台获得的,试过用 document.getElementById('Content').value 居然获取不到值。

但事实上并不是这样,通过这种方式取值,只能取到初始值,当编辑器的内容变化时是取不到的,为什么呢?为什么后台程序可以取得到编辑器中的值呢,<%=request.getParameter("content1")%>这里是可以取到编辑器中的内容的,但是document.getElementById("content1").value确不可以。看来eWebEditor在js中动了手脚,一定是动态帮定了提交事件,或动态绑定了在源码中搜索onsubmit找到如下代码,原来动态的绑定了onsubmit事件,这样每次在提交前会执行AttachSubmit函数

oForm.attachEvent("onsubmit", AttachSubmit) ; if (! oForm.submitEditor) oForm.submitEditor = new Array() ; oForm.submitEditor[oForm.submitEditor.length] = AttachSubmit ; if (! oForm.originalSubmit) { oForm.originalSubmit = oForm.submit ; oForm.submit = function() { if (this.submitEditor) { for (var i = 0 ; i < this.submitEditor.length ; i++) { this.submitEditor[i]() ; } } this.originalSubmit() ; } } function AttachSubmit() { var oForm = oLinkField.form ; if (!oForm) {return;} var html = getHTML(); ContentEdit.value = html; if (sCurrMode=="TEXT"){ html = HTMLEncode(html); } splitTextField(oLinkField, html); }
AttachSubmit就是copy编辑器的内容到隐藏域控件中的过程。

知道了过程我们的问题就不难解决了。只需在取编辑器内容之前执行下AttachSubmit即可

function validateForm(){ window.frames["eWebEditor1"].AttachSubmit();//执行iframe页面中的AttachSubmit函数 if(document.getElementById("content1").value!=""){ document.getElementById("myform").submit(); }else{ alert("空"); } }

 

==========================================================

完整代码如下:


<HTML> 
    
<HEAD>
    
<TITLE>eWebEditor : 标准调用示例</TITLE> 
    
<META http-equiv=Content-Type content="text/html; charset=gb2312"> 
    
<link rel='stylesheet' type='text/css' href='example.css'> 
    
<script> 
    
<!--
        
function validateForm()
        

            
//执行iframe页面中的AttachSubmit函数 
            window.frames["eWebEditor1"].AttachSubmit();
            
if(document.getElementById("content").value != "")
            

                alert(document.getElementById(
"content").value);
            }

            
else
            

                alert(
""); 
            }

        }

    
-->
    
</script> 
    
</HEAD> 
    
<BODY> 
    
<FORM method="post" name="myform"> 
        
<TABLE border="0" cellpadding="2" cellspacing="1"> 
            
<TR> 
                
<TD>编辑内容:</TD> 
                
<TD> 
                    
<INPUT type="hidden" name="content" > 
                    
<IFRAME ID="eWebEditor1" src="ewebeditor.htm?id=content&style=coolblue" frameborder="0" scrolling="no" width="550" height="350"></IFRAME> 
                
</TD> 
            
</TR> 
            
<TR> 
                
<TD colspan=2 align=right> 
                    
<INPUT type=button value="提交" onclick="validateForm();"> 
                    
<INPUT type=reset value="重填"> 
                    
<INPUT type=button value="查看源文件" onclick="location.replace('view-source:'+location)"> 
                
</TD> 
            
</TR> 
        
</TABLE> 
    
</FORM> 
    
</BODY> 
    
</HTML> 
关于网站  |  普通版  |  触屏版  |  网页版
首页 刷新 顶部