与“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