我正在用纯html和javascript制作一个便携文档,它应该是跨浏览器兼容的。我将搜索/突出显示框和结果页面放在不同的框架中。它在ie、ff和chrome中都工作得很好(使用disable-web-security参数),但在Opera中抛出错误。我不知道为什么会这样,也不知道该如何解决。
任何帮助都是非常感谢的。
Opera抛出异常的函数:
function selectElementContents(el) {
if (window.getSelection && document.createRange) {
var sel = window.getSelection();
var range = document.createRange();
range.selectNodeContents(el);
sel.removeAllRanges();
sel.addRange(range);
} else if (document.selection && document.body.createTextRange) {
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.select();
}
}Opera的错误控制台:
Uncaught exception: DOMException: WRONG_DOCUMENT_ERR
Error thrown at line 56, column 8 in selectElementContents(el) in xy.js:
range.selectNodeContents(el);发布于 2012-10-26 22:46:54
您需要在要使用范围的文档中创建范围。我认为您已经基于jsfiddle演示解决了这个问题,但是例如下面这行代码
var range = document.createRange();应该是
var range = el.ownerDocument.createRange();https://stackoverflow.com/questions/13007958
复制相似问题