Internet Explorer中的removeAllRanges()

时间:2014-10-08 17:12:39

标签: javascript internet-explorer drag-and-drop selection

我正在编写一个拖放脚本。按住鼠标并沿着页面移动鼠标时的问题是它开始选择文本。我找到了一种通过调用...来防止这种情况的方法。

var selection = window.getSelection();
selection.removeAllRanges();

......移动鼠标时。像往常一样,我遇到了Internet Explorer的问题。是否有相同的方法使这个方法在< IE9(没有插件,纯JavaScript)?

提前致谢!

2 个答案:

答案 0 :(得分:2)

整个选择模型在旧IE中完全不同。现代浏览器中没有window.getSelection()Range个对象。在IE< 9中实现选择和范围时,您已熟悉TextRange Objects等。

但是,IE的问题可以通过简单的方式解决。将onselectstart事件附加到window(或您需要的任何元素)。在处理程序中阻止默认操作并取消冒泡。像这样:

window.attachEvent('onselectstart', function (e) {
    e.returnValue = false;
    e.cancelBubble = true;
    return false;
}

答案 1 :(得分:2)

旧IE中的等效代码(包括版本8)

document.selection.empty();

相关MSDN页面:http://msdn.microsoft.com/en-gb/library/ie/ms535869(v=vs.85).aspx