<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tinguo002

     

    如何利用js取得eWebEditor編輯器的內容

    原諒:http://blog.csdn.net/sunyujia/article/details/2572861

    用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() ;

            }

        }



     

    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 方法的重新封裝,我還發現一段比較寫的比較好的代碼也一起貼出來。

    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,從而避免了編輯器每次更新都同步值這種沒有必要的操作。





    歡迎大家訪問我的個人網站 萌萌的IT人

    posted on 2013-11-20 21:31 一堣而安 閱讀(218) 評論(0)  編輯  收藏 所屬分類: js_css

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲成人福利网站| 亚洲综合在线成人一区| 亚洲熟妇无码AV| 久久久久av无码免费网| 91亚洲一区二区在线观看不卡| 国产一级在线免费观看| 亚洲中文字幕成人在线| 免费无码又爽又黄又刺激网站| 国产成人免费高清在线观看| 黄网站色成年片大免费高清| 亚洲精品无码成人片在线观看| 日本激情猛烈在线看免费观看| 亚洲国产综合久久天堂| fc2免费人成为视频| 亚洲女久久久噜噜噜熟女| 免费国产在线观看| 免费又黄又爽又猛大片午夜 | 精品成人一区二区三区免费视频| 成年美女黄网站色大免费视频| 亚洲色大成网站www永久男同| 成人永久免费福利视频网站| 免费精品久久久久久中文字幕 | 亚洲成在人天堂在线| 亚洲成人在线免费观看| 亚洲不卡影院午夜在线观看| 国产成人无码免费视频97| 国产免费高清69式视频在线观看| 亚洲开心婷婷中文字幕| 四虎免费影院ww4164h| 久久亚洲精品国产亚洲老地址| 免费国产一级特黄久久| 免费视频成人手机在线观看网址| 亚洲欧洲校园自拍都市| 国产在线观看免费视频播放器| 免费大片av手机看片高清| 久久久久亚洲AV无码专区首| 成人免费视频软件网站| 高清永久免费观看| 亚洲国产区男人本色在线观看| 亚洲一级特黄无码片| 久久笫一福利免费导航|