我只是無意中發現了一段代碼,我從來沒有見過之前:Javascript:document.execCommand跨瀏覽器?
document.execCommand('Copy');
這似乎剪貼板中的內容複製到焦點的元素。
此功能是否可用於跨瀏覽器?
我發現a page示出用於document.execCommand
兼容性矩陣。
我只是無意中發現了一段代碼,我從來沒有見過之前:Javascript:document.execCommand跨瀏覽器?
document.execCommand('Copy');
這似乎剪貼板中的內容複製到焦點的元素。
此功能是否可用於跨瀏覽器?
我發現a page示出用於document.execCommand
兼容性矩陣。
這是'設計模式',瀏覽器有效地將文檔轉換爲編輯器。 execCommand API起源於IE,後來是added to HTML5.支持哪些命令,以及它們在不同瀏覽器中的行爲。剪貼板訪問被視爲安全風險。
剪貼板訪問:這就是我認爲的安全風險。謝謝! – jldupont
對於那些想進一步研究的人來說,我遇到了下面的[代碼筆](http:// codepen。io/netsi1964/pen/QbLLGW),它可以對不同的瀏覽器提供的不同execCommand進行很好的細分。 –
找到了相同的漏洞:https://github.com/dxa4481/Pastejacking/blob/master/index.html –
更新:好吧,document.execCommand
記錄在the Mozilla DOM documentation中,但其描述與MSDN文檔略有不同。
我仍然確定它不在ECMA-262標準中。
在Mozilla.org上,它是如何出現的? https://developer.mozilla.org/En/Document.execCommand – jldupont
爲什麼DOM方法符合語言標準?我很確定'document'或'window'不是ECMA-262標準的一部分。 –
@Elijah Gray:好點。 JavaScript語言由ECMA標準化,DOM由W3C標準化。但我不認爲'document.execCommand'也在W3C DOM標準中。 (快速檢查w3c.org上的DOM-1規範似乎證實了這一點。) –
是的,我用它在IE,Chrome,Safari。如果它適用於這些瀏覽器,那麼它應該適用於其他瀏覽器。無論如何,document
對象的execCommand
方法用於執行與瀏覽器中內置的Rich Text Editing功能相關的命令。該execCommand
的語法如下:document.execCommand(command, uiBool, argument)
命令參數是要執行的命令 - 粗體,下劃線,字體等
然後你有uiBool
這是布爾值,指定是否應該顯示默認的用戶界面。
最後一個參數是某些命令需要我們傳遞參數的參數。如果命令不需要參數,我們會傳遞一個值null
作爲第三個參數。
例子:
document.getElementById("whateverID").document.execCommand('bold', false, null);
或:
document.getElementById("whateverID").document.execCommand('bold', false, <a variable nae>);
Link是有趣的,但它太舊,只包括Firefox 2和犯規包括鍍鉻的。任何人都知道後面的矩陣? –
請參閱http://caniuse.com/#feat=document-exec命令 –