gpt4 book ai didi

javascript - Opera 从 selectNodeContents 中抛出 DOMException

转载 作者:行者123 更新时间:2023-11-30 13:13:25 25 4
gpt4 key购买 nike

我正在用纯 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);

最佳答案

您需要在要使用它的文档中创建范围。我认为你已经根据 jsfiddle 演示解决了这个问题,但是例如行

var range = document.createRange();

应该是

 var range = el.ownerDocument.createRange();

关于javascript - Opera 从 selectNodeContents 中抛出 DOMException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13007958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com