摘要:設(shè)定元素的屬性為絕對。將當前選中區(qū)復(fù)制到剪貼板并刪除之。插入隱藏控件覆蓋當前選中區(qū)。減少選中區(qū)所在格式化塊的縮進。傳遞整數(shù)將顯示用戶界面,整數(shù)將跳過它。方法受到的影響會閃爍。
document.execCommand()方法處理Html數(shù)據(jù)時常用語法格式如下:
document.execCommand(sCommand[,交互方式, 動態(tài)參數(shù)])
其中:sCommand為指令參數(shù)(如下例中的”2D-Position”),交互方式參數(shù)如果是true的話將顯示對話框,如果為false的話,則不顯示對話框(下例中的”false”即表示不顯示對話框),動態(tài)參數(shù)一般為一可用值或?qū)傩灾担ㄈ缦吕械摹眛rue”)。
document.execCommand(”2D-Position”,”false”,”true”);
調(diào)用execCommand()可以實現(xiàn)瀏覽器菜單的很多功能. 如保存文件,打開新文件,撤消、重做操作…等等. 有了這個方法,就可以很容易的實現(xiàn)網(wǎng)頁中的文本編輯器.
如果靈活運用,可以很好的輔助我們完成各種項目.
使用的例子如下:
1、〖全選〗命令的實現(xiàn)
[說明]將選種網(wǎng)頁中的全部內(nèi)容!
[舉例]在之間加入:
全選
2、〖打開〗命令的實現(xiàn)
[說明]這跟VB等編程設(shè)計中的webbrowser控件中的命令有些相似,大家也可依此琢磨琢磨。
[舉例]在之間加入:
打開
3、〖另存為〗命令的實現(xiàn)
[說明]將該網(wǎng)頁保存到本地盤的其它目錄!
[舉例]在之間加入:
另存為
4、〖打印〗命令的實現(xiàn)
[說明]當然,你必須裝了打印機!
[舉例]在之間加入:
打印
Js代碼 下面列出的是指令參數(shù)及意義
//相當于單擊文件中的打開按鈕
document.execCommand(”O(jiān)pen”);
//將當前頁面另存為
document.execCommand(”SaveAs”);
//剪貼選中的文字到剪貼板;
document.execCommand(”Cut”,”false”,null);
//刪除選中的文字;
document.execCommand(”Delete”,”false”,null);
//改變選中區(qū)域的字體;
document.execCommand(”FontName”,”false”,sFontName);
//改變選中區(qū)域的字體大小;
document.execCommand(”FontSize”,”false”,sSize|iSize);
//設(shè)置前景顏色;
document.execCommand(”ForeColor”,”false”,sColor);
//使絕對定位的對象可直接拖動;
document.execCommand(”2D-Position”,”false”,”true”);
//使對象定位變成絕對定位;
document.execCommand(”AbsolutePosition”,”false”,”true”);
//設(shè)置背景顏色;
document.execCommand(”BackColor”,”false”,sColor);
//使選中區(qū)域的文字加粗;
document.execCommand(”Bold”,”false”,null);
//復(fù)制選中的文字到剪貼板;
document.execCommand(”Copy”,”false”,null);
//設(shè)置指定錨點為書簽;
document.execCommand(”CreateBookmark”,”false”,sAnchorName);
//將選中文本變成超連接,若第二個參數(shù)為true,會出現(xiàn)參數(shù)設(shè)置對話框;
document.execCommand(”CreateLink”,”false”,sLinkURL);
//設(shè)置當前塊的標簽名;
document.execCommand(”FormatBlock”,”false”,sTagName);
//相當于單擊文件中的打開按鈕
document.execCommand(”O(jiān)pen”);
//將當前頁面另存為
document.execCommand(”SaveAs”);
//剪貼選中的文字到剪貼板;
document.execCommand(”Cut”,”false”,null);
//刪除選中的文字;
document.execCommand(”Delete”,”false”,null);
//改變選中區(qū)域的字體;
document.execCommand(”FontName”,”false”,sFontName);
//改變選中區(qū)域的字體大小;
document.execCommand(”FontSize”,”false”,sSize|iSize);
//設(shè)置前景顏色;
document.execCommand(”ForeColor”,”false”,sColor);
//使絕對定位的對象可直接拖動;
document.execCommand(”2D-Position”,”false”,”true”);
//使對象定位變成絕對定位;
document.execCommand(”AbsolutePosition”,”false”,”true”);
//設(shè)置背景顏色;
document.execCommand(”BackColor”,”false”,sColor);
//使選中區(qū)域的文字加粗;
document.execCommand(”Bold”,”false”,null);
//復(fù)制選中的文字到剪貼板;
document.execCommand(”Copy”,”false”,null);
//設(shè)置指定錨點為書簽;
document.execCommand(”CreateBookmark”,”false”,sAnchorName);
//將選中文本變成超連接,若第二個參數(shù)為true,會出現(xiàn)參數(shù)設(shè)置對話框;
document.execCommand(”CreateLink”,”false”,sLinkURL);
//設(shè)置當前塊的標簽名;
document.execCommand(”FormatBlock”,”false”,sTagName);
document對象execCommand通常在IE中在線處理Html數(shù)據(jù)時非常有用,它可以讓你輕而易舉實現(xiàn)文字的加粗、加顏色、加字體等一系列的命令。
D-Position 允許通過拖曳移動絕對定位的對象。
AbsolutePosition 設(shè)定元素的 position 屬性為“absolute”(絕對)。
BackColor 設(shè)置或獲取當前選中區(qū)的背景顏色。
BlockDirLTR 目前尚未支持。
BlockDirRTL 目前尚未支持。
Bold 切換當前選中區(qū)的粗體顯示與否。
BrowseMode 目前尚未支持。
Copy 將當前選中區(qū)復(fù)制到剪貼板。
CreateBookmark 創(chuàng)建一個書簽錨或獲取當前選中區(qū)或插入點的書簽錨的名稱。
CreateLink 在當前選中區(qū)上插入超級鏈接,或顯示一個對話框允許用戶指定要為當前選中區(qū)插入的超級鏈接的 URL。
Cut 將當前選中區(qū)復(fù)制到剪貼板并刪除之。
Delete 刪除當前選中區(qū)。
DirLTR 目前尚未支持。
DirRTL 目前尚未支持。
EditMode 目前尚未支持。
FontName 設(shè)置或獲取當前選中區(qū)的字體。
FontSize 設(shè)置或獲取當前選中區(qū)的字體大小。
ForeColor 設(shè)置或獲取當前選中區(qū)的前景(文本)顏色。
FormatBlock 設(shè)置當前塊格式化標簽。
Indent 增加選中文本的縮進。
InlineDirLTR 目前尚未支持。
InlineDirRTL 目前尚未支持。
InsertButton 用按鈕控件覆蓋當前選中區(qū)。
InsertFieldset 用方框覆蓋當前選中區(qū)。
InsertHorizontalRule 用水平線覆蓋當前選中區(qū)。
InsertIFrame 用內(nèi)嵌框架覆蓋當前選中區(qū)。
InsertImage 用圖像覆蓋當前選中區(qū)。
InsertInputButton 用按鈕控件覆蓋當前選中區(qū)。
InsertInputCheckbox 用復(fù)選框控件覆蓋當前選中區(qū)。
InsertInputFileUpload 用文件上載控件覆蓋當前選中區(qū)。
InsertInputHidden 插入隱藏控件覆蓋當前選中區(qū)。
InsertInputImage 用圖像控件覆蓋當前選中區(qū)。
InsertInputPassword 用密碼控件覆蓋當前選中區(qū)。
InsertInputRadio 用單選鈕控件覆蓋當前選中區(qū)。
InsertInputReset 用重置控件覆蓋當前選中區(qū)。
InsertInputSubmit 用提交控件覆蓋當前選中區(qū)。
InsertInputText 用文本控件覆蓋當前選中區(qū)。
InsertMarquee 用空字幕覆蓋當前選中區(qū)。
InsertOrderedList 切換當前選中區(qū)是編號列表還是常規(guī)格式化塊。
InsertParagraph 用換行覆蓋當前選中區(qū)。
InsertSelectDropdown 用下拉框控件覆蓋當前選中區(qū)。
InsertSelectListbox 用列表框控件覆蓋當前選中區(qū)。
InsertTextArea 用多行文本輸入控件覆蓋當前選中區(qū)。
InsertUnorderedList 切換當前選中區(qū)是項目符號列表還是常規(guī)格式化塊。
Italic 切換當前選中區(qū)斜體顯示與否。
JustifyCenter 將當前選中區(qū)在所在格式化塊置中。
JustifyFull 目前尚未支持。
JustifyLeft 將當前選中區(qū)所在格式化塊左對齊。
JustifyNone 目前尚未支持。
JustifyRight 將當前選中區(qū)所在格式化塊右對齊。
LiveResize 迫使 MSHTML 編輯器在縮放或移動過程中持續(xù)更新元素外觀,而不是只在移動或縮放完成后更新。
MultipleSelection 允許當用戶按住 Shift 或 Ctrl 鍵時一次選中多于一個站點可選元素。
Open 目前尚未支持。
Outdent 減少選中區(qū)所在格式化塊的縮進。
OverWrite 切換文本狀態(tài)的插入和覆蓋。
Paste 用剪貼板內(nèi)容覆蓋當前選中區(qū)。
PlayImage 目前尚未支持。
Print 打開打印對話框以便用戶可以打印當前頁。
Redo 目前尚未支持。
Refresh 刷新當前文檔。
RemoveFormat 從當前選中區(qū)中刪除格式化標簽。
RemoveParaFormat 目前尚未支持。
SaveAs 將當前 Web 頁面保存為文件。
SelectAll 選中整個文檔。
SizeToControl 目前尚未支持。
SizeToControlHeight 目前尚未支持。
SizeToControlWidth 目前尚未支持。
Stop 目前尚未支持。
StopImage 目前尚未支持。
StrikeThrough 目前尚未支持。
Subscript 目前尚未支持。
Superscript 目前尚未支持。
UnBookmark 從當前選中區(qū)中刪除全部書簽。
Underline 切換當前選中區(qū)的下劃線顯示與否。
Undo 目前尚未支持。
Unlink 從當前選中區(qū)中刪除全部超級鏈接。
Unselect 清除當前選中區(qū)的選中狀態(tài)。
關(guān)于document.execCommand:
要執(zhí)行編輯命令,可調(diào)用 document.execCommand,并傳遞對應(yīng)于命令 ID 的字符串。另外還有可選的第二個參數(shù),該參數(shù)指定如果可以應(yīng)用的話是否顯示此命令的用戶界面。傳遞整數(shù) 1 將顯示用戶界面,整數(shù) 0 將跳過它。這個參數(shù)通常不用于編輯命令。因為默認值為 0,所以假如您沒有使用第三個參數(shù)(在這種情況下,還必須為第二個參數(shù)傳遞值),一般可以不管它。第三個參數(shù)也是可選的,在可應(yīng)用的情況下,使用它來將任何所需參數(shù)傳遞給該命令。
Pixy方法受到IE的cache bug影響會閃爍。其實并沒有說清楚這個問題,但其實該bug是有條件的,即IE的cache設(shè)置為Every visit to the page,而不是默認的Automatically。基本上,只有開發(fā)者才會把cache設(shè)置為每次訪問檢查更新,所以這個bug其實不會影響真正的用戶(根據(jù)在winxpsp2的ie6下測試,雖然可能仍然調(diào)用了一次網(wǎng)絡(luò)存取的api,但是并沒有發(fā)生實際的請求,癥狀就是鼠標有極短時間的抖動,但是圖像不會閃爍)。此外有人發(fā)現(xiàn)了一個未公開的方法來讓IE對背景圖進行緩存:
document.execCommand(”BackgroundImageCache”,false,true)
用這種方法甚至避免了api調(diào)用,貌似是直接緩存在IE內(nèi)存中。
IE6下設(shè)置背景圖片是不會被真正cache住的,就算服務(wù)器做了cache,如果想cache住只能~~~
做過UI設(shè)計和開發(fā)的人一定知道,IE(不包括IE7)會經(jīng)常從服務(wù)器端重新載入背景圖片,好端端的UI界面在IE(不包括IE7)中就這樣被折騰著……
Erik發(fā)現(xiàn)了一個簡單的解決辦法(針對IE7以下的IE有效,其實在IE7中已經(jīng)修復(fù)了這個Bug)
程序代碼 程序代碼
document.execCommand(”BackgroundImageCache”, false, true);
今天閱讀Ext的源碼時發(fā)現(xiàn)Jack Slocum已經(jīng)考慮到了這一點,在Ext.js中給出了他的實現(xiàn),在其它Ajax框架中應(yīng)該還沒有這種類似的代碼,從這一個細節(jié)上就能看出Ext的全面~
程序代碼 程序代碼
var isIE = ua.indexOf(”msie”) > -1, isIE7 = ua.indexOf(”msie 7″) > -1;
// remove css image flicker
if(isIE && !isIE7){
try{
document.execCommand(”BackgroundImageCache”, false, true);
}catch(e){}
}
今天閱讀幻宇的dreamplayer播放器源碼時發(fā)現(xiàn)幻宇也針對IE的背景緩存進行了修復(fù),只是他并沒考慮到IE7中已經(jīng)不存在這個現(xiàn)象了,這是 evml.js中的一段相關(guān)代碼~(順便嘀咕兩句:這家伙,寫JS從來不加分號的,以前是這樣,現(xiàn)在還是這樣,這樣的話怎么進行壓縮呀,汗~下面的代碼按照我的習慣都已加上分號,哪怕只有兩三句而已~)
程序代碼 程序代碼
windows.isIE=navigator.appName.indexOf("Microsoft")==0;
if(isIE){
document.documentElement.addBehavior("#default#userdata");
document.execCommand("BackgroundImageCache",false,true);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/95983.html
摘要:考察了下現(xiàn)有的富文本編輯器,桌面端的很多,移動端的幾乎沒有。為此決定自研一個富文本編輯器。本文,主要介紹如何實現(xiàn)富文本編輯器,和解決一些不同瀏覽器和設(shè)備之間的。光標操作作為富文本編輯器,開發(fā)者需要有能力控制光標的各種狀態(tài)信息,位置信息等。 利用 javascript 實現(xiàn)富文本編輯器 閱讀 994收藏 1482017-11-03原文鏈接:eux.baidu.com利用 javascri...
摘要:考察了下現(xiàn)有的富文本編輯器,桌面端的很多,移動端的幾乎沒有。為此決定自研一個富文本編輯器。本文,主要介紹如何實現(xiàn)富文本編輯器,和解決一些不同瀏覽器和設(shè)備之間的。光標操作作為富文本編輯器,開發(fā)者需要有能力控制光標的各種狀態(tài)信息,位置信息等。 利用 javascript 實現(xiàn)富文本編輯器 閱讀 994收藏 1482017-11-03原文鏈接:eux.baidu.com利用 javascri...
摘要:考察了下現(xiàn)有的富文本編輯器,桌面端的很多,移動端的幾乎沒有。為此決定自研一個富文本編輯器。本文,主要介紹如何實現(xiàn)富文本編輯器,和解決一些不同瀏覽器和設(shè)備之間的。光標操作作為富文本編輯器,開發(fā)者需要有能力控制光標的各種狀態(tài)信息,位置信息等。 利用 javascript 實現(xiàn)富文本編輯器 閱讀 994收藏 1482017-11-03原文鏈接:eux.baidu.com利用 javascri...
閱讀 3553·2021-11-25 09:43
閱讀 3135·2021-10-08 10:04
閱讀 1625·2019-08-26 12:20
閱讀 2053·2019-08-26 12:09
閱讀 595·2019-08-23 18:25
閱讀 3573·2019-08-23 17:54
閱讀 2322·2019-08-23 17:50
閱讀 803·2019-08-23 14:33