首页 > php教程 > PHP源码 > 正文

如何利用js取得eWebEditor编辑器的内容

PHP中文网
发布: 2016-05-25 17:11:51
原创
1671人浏览过

用javascript取控件的值本来是一件简单的事却被ewebeditor搞的很不方便,导致很多初学者,不知道该如何获取。在分析之前先把我们习惯性的取值方法写出来。

<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(){  
  
  
        if(document.getElementById("content1").value!=""){  
  
            document.getElementById("myform").submit();  
  
        }else{  
  
            alert("空");  
  
        }  
  
    }  
  
</script>  
  
</HEAD>  
  
<BODY>  
  
<FORM method="post" name="myform" action="rs.jsp">  
  
<TABLE border="0" cellpadding="2" cellspacing="1">  
  
<TR>  
  
    <TD>编辑内容:</TD>  
  
    <TD>  
  
        <INPUT type="hidden" name="content1" >  
  
        <IFRAME ID="eWebEditor1" src="../ewebeditor.htm?id=content1&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>
登录后复制

上面代码非常简单我们一般会认为document.getElementById("content1").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() ;  
  
    }  
  
}
登录后复制

[jscript] view plain copy

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("空");  
  
    }  
  
}
登录后复制

整个过程就此结束,其实eWebEditor代码中的很多思想都是很具有参考价值的例如AttachSubmit的绑定submit 方法的重新封装,我还发现一段比较写的比较好的代码也一起贴出来。

秘塔写作猫
秘塔写作猫

秘塔写作猫是一个集AI写作、校对、润色、配图等为一体的创作平台

秘塔写作猫 127
查看详情 秘塔写作猫
var URLParams = new Object() ;  
  
var aParams = document.location.search.substr(1).split('&') ;  
  
for (i=0 ; i < aParams.length ; i++) {  
  
    var aParam = aParams[i].split('=') ;  
  
    URLParams[aParam[0]] = aParam[1] ;  
  
}  
  
  
  
var sLinkFieldName = URLParams["id"] ;  
  
var sExtCSS = URLParams["extcss"] ;  
  
var sFullScreen = URLParams["fullscreen"];  
  
  
  
var config = new Object() ;  
  
config.StyleName = (URLParams["style"]) ? URLParams["style"].toLowerCase() : "coolblue";  
  
config.CusDir = URLParams["cusdir"];  
  
config.ServerExt = "jsp";
登录后复制

解析url的方法,这种方法以前koko跟我说过一回,今天在ewebeditor中又看到了,看来是一种比较常规的分析URL参数的方法。

总结:其实eWebEditor只是修改了提交表单的两个事件,在提交表单前进行值copy,从而避免了编辑器每次更新都同步值这种没有必要的操作。

以上就是 如何利用js取得eWebEditor编辑器的内容 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关标签:
js
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号