在線編輯器的實(shí)現(xiàn)原理(兼容IE和FireFox)
更新時(shí)間:2007年03月09日 00:00:00 作者:
在線編輯器在我們?nèi)粘5捻?xiàng)目開發(fā)中非常有用(如新聞系統(tǒng)),它可以方便地實(shí)現(xiàn)文章的在線編輯,省掉了FrontPage等工具。那么是怎樣實(shí)現(xiàn)瀏覽器在線編輯功能的呢? 首先需要IE的支持,在IE5.5以后就有一個(gè)編輯狀態(tài). 就是利用這個(gè)編輯狀態(tài),然后用javascript來(lái)控制在線編輯的。
首先要有一個(gè)編輯框,這個(gè)編輯框其實(shí)就是一個(gè)可編輯狀態(tài)的網(wǎng)頁(yè), 我們用iframe來(lái)建立編輯框。
<IFRAME id=“HtmlEdit” style="WIDTH: 100%; HEIGHT: 296px" marginWidth=“0” marginHeight=“0”></IFRAME>
并且在加上javascript代碼來(lái)指定HtmlEdit有編輯功能(下面提供完整的原代碼):
<script language="javascript">
var editor;
editor = document.getElementById("HtmlEdit").contentWindow;
//只需鍵入以下設(shè)定,iframe立刻變成編輯器。
editor.document.designMode = 'On';
editor.document.contentEditable = true;
//但是IE與FireFox有點(diǎn)不同,為了兼容FireFox,所以必須創(chuàng)建一個(gè)新的document。
editor.document.open();
editor.document.writeln('<html><body></body></html>');
editor.document.close();
//字體特效 - 加粗方法一
function addBold()
{
editor.focus();
//所有字體特效只是使用execComman()就能完成。
editor.document.execCommand("Bold", false, null);
}
//字體特效 - 加粗方法二
function addBold()
{
editor.focus();
//獲得選取的焦點(diǎn)
var sel = editor.document.selection.createRange();
insertHTML("<b>"+sel.text+"</b>");
}
function insertHTML(html)
{
if (editor.document.selection.type.toLowerCase() != "none")
{
editor.document.selection.clear() ;
}
editor.document.selection.createRange().pasteHTML(html) ;
}
</script>
首先要有一個(gè)編輯框,這個(gè)編輯框其實(shí)就是一個(gè)可編輯狀態(tài)的網(wǎng)頁(yè), 我們用iframe來(lái)建立編輯框。
<IFRAME id=“HtmlEdit” style="WIDTH: 100%; HEIGHT: 296px" marginWidth=“0” marginHeight=“0”></IFRAME>
并且在加上javascript代碼來(lái)指定HtmlEdit有編輯功能(下面提供完整的原代碼):
復(fù)制代碼 代碼如下:
<script language="javascript">
var editor;
editor = document.getElementById("HtmlEdit").contentWindow;
//只需鍵入以下設(shè)定,iframe立刻變成編輯器。
editor.document.designMode = 'On';
editor.document.contentEditable = true;
//但是IE與FireFox有點(diǎn)不同,為了兼容FireFox,所以必須創(chuàng)建一個(gè)新的document。
editor.document.open();
editor.document.writeln('<html><body></body></html>');
editor.document.close();
//字體特效 - 加粗方法一
function addBold()
{
editor.focus();
//所有字體特效只是使用execComman()就能完成。
editor.document.execCommand("Bold", false, null);
}
//字體特效 - 加粗方法二
function addBold()
{
editor.focus();
//獲得選取的焦點(diǎn)
var sel = editor.document.selection.createRange();
insertHTML("<b>"+sel.text+"</b>");
}
function insertHTML(html)
{
if (editor.document.selection.type.toLowerCase() != "none")
{
editor.document.selection.clear() ;
}
editor.document.selection.createRange().pasteHTML(html) ;
}
</script>
相關(guān)文章
JavaScript利用油猴腳本實(shí)現(xiàn)去水印功能
這篇文章主要為大家詳細(xì)介紹了JavaScript如何利用油猴腳本實(shí)現(xiàn)去水印功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03layui(1.0.9)文件上傳upload,前后端的實(shí)例代碼
今天小編就為大家分享一篇layui(1.0.9)文件上傳upload,前后端的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09Google 靜態(tài)地圖API實(shí)現(xiàn)代碼
Google 靜態(tài)地圖 文檔說(shuō)的很詳細(xì),這里就不在啰嗦了!2010-11-11Bootstrap簡(jiǎn)單表單顯示學(xué)習(xí)筆記
這篇文章主要為大家分享了Bootstrap簡(jiǎn)單表單顯示學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11js鼠標(biāo)按鍵事件和鍵盤按鍵事件用法實(shí)例匯總
這篇文章主要介紹了js鼠標(biāo)按鍵事件和鍵盤按鍵事件用法,結(jié)合實(shí)例形式總結(jié)分析了JavaScript針對(duì)鼠標(biāo)與鍵盤事件的常用操作技巧,需要的朋友可以參考下2016-10-10js判斷頁(yè)面中是否有指定控件的簡(jiǎn)單實(shí)例
本篇文章主要是對(duì)js判斷頁(yè)面中是否有指定控件的簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03Bootstrap組件之下拉菜單,多級(jí)菜單及按鈕布局方法實(shí)例
這篇文章主要介紹了Bootstrap組件之下拉菜單,多級(jí)菜單及按鈕布局方法,結(jié)合完整實(shí)例形式分析了Bootstrap多級(jí)菜單布局相關(guān)樣式功能與具體使用技巧,需要的朋友可以參考下2017-05-05javascript動(dòng)態(tài)獲取登錄時(shí)間和在線時(shí)長(zhǎng)
這篇文章主要為大家詳細(xì)介紹了javascript動(dòng)態(tài)獲取登錄時(shí)間和在線時(shí)長(zhǎng)的相關(guān)資料,獲得登錄時(shí)候的時(shí)間,用來(lái)和動(dòng)態(tài)的時(shí)間做差來(lái)求時(shí)長(zhǎng),感興趣的小伙伴們可以參考一下2016-02-02