どのようにjsを利用してeWebEditorエディタの内容を取得しますか?
5098 ワード
javascriptでコントロールの値を取るのはもともと簡単なことですが、eWebEditorによっては不便です.多くの初心者がどうやって取得すればいいのか分かりません.分析する前に、まず私たちの習慣的な採値方法を書いてください.
上記のコードは非常に簡単です.私達は一般的にDcument.getElemenntById(「content 1」).valueはこれで値を取ることができますが、実際にはそうではありません.このような方法で値を取ると、初期値しか取れません.エディタの内容が変わった時に取れないのは何ですか?なぜバックグラウンドプログラムはエディタの値を取得することができますか?「%=request.get Parameeter("content 1")%」ここではエディタの内容を取ることができますが、document.getElement ById.valueはだめです.eWebEditorはjsで手足を動かしたようです.必ず動的に事件を提出するように助けてくれました.あるいは、ソースからワンストップを検索して次のコードを見つけました.もとはダイナミックにワンストップイベントを結びつけました.このように毎回提出する前にAttach Submit関数を実行します.
過程がわかったら、私たちの問題は解決しやすくなります.エディタの内容を取る前にAttachSubmitを実行すればいいです.
urlを解析する方法は、この方法は以前にkoから一回も言われましたが、今日はebeditorで見ました.URLのパラメータを比較的一般的に分析する方法のようです.
まとめ:実はeWebEditorはフォームを提出する二つのイベントを修正しただけで、フォームを提出する前にcopyを値して、エディタが更新するたびに、同期値を設定する必要のない操作を回避しました.
<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>
上記のコードは非常に簡単です.私達は一般的にDcument.getElemenntById(「content 1」).valueはこれで値を取ることができますが、実際にはそうではありません.このような方法で値を取ると、初期値しか取れません.エディタの内容が変わった時に取れないのは何ですか?なぜバックグラウンドプログラムはエディタの値を取得することができますか?「%=request.get Parameeter("content 1")%」ここではエディタの内容を取ることができますが、document.getElement ById.valueはだめです.eWebEditorはjsで手足を動かしたようです.必ず動的に事件を提出するように助けてくれました.あるいは、ソースからワンストップを検索して次のコードを見つけました.もとはダイナミックにワンストップイベントを結びつけました.このように毎回提出する前にAttach Submit関数を実行します.
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);
}
Attach Submitとは、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を解析する方法は、この方法は以前にkoから一回も言われましたが、今日はebeditorで見ました.URLのパラメータを比較的一般的に分析する方法のようです.
まとめ:実はeWebEditorはフォームを提出する二つのイベントを修正しただけで、フォームを提出する前にcopyを値して、エディタが更新するたびに、同期値を設定する必要のない操作を回避しました.