寫UBB編輯器心得–編寫瀏覽器安全色的 JavaScript 代碼

來源:互聯網
上載者:User
  最近剛剛完成了一個簡單的UBB編輯器,就是本部落格評論、留言用的編輯器。編寫 javascript 過程中遇到不少瀏覽器安全色問題,在此記錄,以備查閱。
  JavaScript 編寫過程中盡量使用ECMAScript標準中的方法、屬性。
1.獲得文字框中選中的文本:
if(document.selection && document.selection.type == "Text") //IE
{
SelectedStr = document.selection.createRange().text;
}
else if(window.getSelection && this.TextBox.selectionStart > - 1) //FF
{
var st = this.TextBox.selectionStart;
var ed = this.TextBox.selectionEnd;
SelectedStr = this.TextBox.value.substring(st, ed) ;
}

2.捕獲事件:

menuFontSize.onclick = function(e)
{
var evt = (window.event || e);
...

3.停止事件冒泡:

f(evt.preventDefault) //IE
{
evt.preventDefault();
evt.stopPropagation();
}
else //FF
{
evt.cancelBubble = true;
evt.returnValue = false;
}

4.註冊事件:

if(document.attachEvent) //IE
{
document.attachEvent("onclick", hideeve);
}
else FF
{
document.addEventListener("click", hideeve, false);
}

5.擷取iframe中元素的值:

document.getElementById("ZxjayUBBEditor").contentWindow.document.getElementById('txt').value;

6.擷取div元素中的文本:
IE支援innerText
FF支援textContent,但FF的textContent連空格、換行都擷取了,用正則去掉

$(objId).innerText //IE
$(objId).textContent.replace(/\ \ /g,"").replace(/(^\n+)|(\n+$)/g,"") //FF

7.用物件導向方法寫JavaScript程式,思路清晰,冗餘代碼少,值得提倡。

補充!
後台獲得iframe中的元素的值方法為:
在表單提交的時候,執行JavaScript代碼,用javascript取得iframe中元素的值並寫到隱藏控制項,在背景程式Request就行了。

為防止提交不成功,寫入的資訊丟失,在iframe載入時執行onload()事件,將隱藏控制項的值寫到iframe控制項裡。
由於還有Bug尚未解決,不能開源,修正後發布源碼。
本文因時間原因,寫的比較亂,示範地址:往下看↓ 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.