與「CONTENTEDITABLE」標誌元素時,我粘貼在任何元素文本「CONTENTEDITABLE」啓用標誌,IE會自動查找鏈接或電子郵件地址,並用其替換禁用自動URL檢測在IE
<a href="hyperlink">hyperlink</a>.
我如何禁用IE瀏覽器中的'contentEditable'標誌的元素(例如div,span等)的自動URL檢測或aleast獲取粘貼在div中的實際文本。
最好的問候,
凱沙夫
與「CONTENTEDITABLE」標誌元素時,我粘貼在任何元素文本「CONTENTEDITABLE」啓用標誌,IE會自動查找鏈接或電子郵件地址,並用其替換禁用自動URL檢測在IE
<a href="hyperlink">hyperlink</a>.
我如何禁用IE瀏覽器中的'contentEditable'標誌的元素(例如div,span等)的自動URL檢測或aleast獲取粘貼在div中的實際文本。
最好的問候,
凱沙夫
我不認爲你可以。您需要捕獲paste
事件並設置一個簡短的計時器,該計時器調用一個可刪除鏈接的函數。
編輯2012年9月30日
IE 9和上述具有切換這一關的能力。見Maxon的答案。
不幸的是,沒有跨版本的解決方案。 在IE9有機會,允許禁用自動超鏈接:
document.execCommand("AutoUrlDetect", false, false);
我用的preventDefault上空格鍵,回車鍵,tab鍵的keydown事件來防止URL檢測。測試IE11和Chrome。
document.getElementById("input").addEventListener("keydown", function (e) {
var SPACEKEY = 32;
var ENTERKEY = 13;
var TABKEY = 9;
var whiteSpace = "";
if (e.keyCode == SPACEKEY || e.keyCode == ENTERKEY || e.keyCode == TABKEY) {
e.preventDefault();
if (e.keyCode == SPACEKEY) {
whiteSpace = " ";
} else if (e.keyCode == ENTERKEY) {
whiteSpace = "\n";
} else if (e.keyCode == TABKEY) {
whiteSpace = "\t";
}
var selection = document.getSelection();
var start = selection.anchorOffset > selection.focusOffset ? selection.focusOffset : selection.anchorOffset;
var end = selection.anchorOffset > selection.focusOffset ? selection.anchorOffset : selection.focusOffset;
$(this).text($(this).text().substring(0, start)
+ " "
+ $(this).text().substring(end));
var range = document.createRange();
range.setStart($(this)[0].firstChild, start + 1);
range.setEnd($(this)[0].firstChild, start + 1);
selection.removeAllRanges();
selection.addRange(range);
}
return false;
});
這似乎不適用於IE11 – jreptak 2013-11-11 19:04:34
已確認無法在IE11中正常工作 – Artif3x 2016-12-15 21:16:37