首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Opera从selectNodeContents抛出DOMException

Opera从selectNodeContents抛出DOMException
EN

Stack Overflow用户
提问于 2012-10-22 17:00:50
回答 1查看 391关注 0票数 1

我正在用纯html和javascript制作一个便携文档,它应该是跨浏览器兼容的。我将搜索/突出显示框和结果页面放在不同的框架中。它在ie、ff和chrome中都工作得很好(使用disable-web-security参数),但在Opera中抛出错误。我不知道为什么会这样,也不知道该如何解决。

任何帮助都是非常感谢的。

Opera抛出异常的函数:

代码语言:javascript
复制
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的错误控制台:

代码语言:javascript
复制
Uncaught exception: DOMException: WRONG_DOCUMENT_ERR
Error thrown at line 56, column 8 in selectElementContents(el) in xy.js:
range.selectNodeContents(el);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-26 22:46:54

您需要在要使用范围的文档中创建范围。我认为您已经基于jsfiddle演示解决了这个问题,但是例如下面这行代码

代码语言:javascript
复制
var range = document.createRange();

应该是

代码语言:javascript
复制
 var range = el.ownerDocument.createRange();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13007958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档