gpt4 book ai didi

javascript - Selection.addRange() 已弃用 - 如何解决错误

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

搜索网络让我找到了Selection.addRange() is deprecated and will be removed from Chrome

但这有点太宽泛了。我收到此错误是因为我在我的项目中包含了一些 Bootstrap 。现在对我来说“范围”意味着[从A到Z][从开始到结束]

阅读上面发布的帖子告诉我解决问题的技巧是在 addRange(..); 之前调用 removeAllRanges(); 但阅读remove所有范围让我建议可以添加几个范围或值。

我尝试在两者之间添加 removeAllRanges(); ,它给我带来了更多错误,因为如果我添加一个范围(开始),我必须添加第二个范围(结束)。

其实它不是一个范围,更多的是在addRange中设置的参数。

这是导致问题的一些 Bootstrap 生成文件中的代码

(function() {
var iframe = document.createElement("iframe");
body.appendChild(iframe);

var iframeDoc = dom.getIframeDocument(iframe);
iframeDoc.open();
iframeDoc.write("<html><head></head><body>12</body></html>");
iframeDoc.close();

var sel = dom.getIframeWindow(iframe).getSelection();
var docEl = iframeDoc.documentElement;
var iframeBody = docEl.lastChild, textNode = iframeBody.firstChild;

// Test whether the native selection will allow a collapsed selection within a non-editable element
var r1 = iframeDoc.createRange();
r1.setStart(textNode, 1);
r1.collapse(true);
sel.addRange(r1);
collapsedNonEditableSelectionsSupported = (sel.rangeCount == 1);
sel.removeAllRanges();

// Test whether the native selection is capable of supporting multiple ranges
var r2 = r1.cloneRange();
r1.setStart(textNode, 0);
r2.setEnd(textNode, 2);
sel.addRange(r1);
sel.addRange(r2);

selectionSupportsMultipleRanges = (sel.rangeCount == 2);

// Clean up
r1.detach();
r2.detach();

body.removeChild(iframe);
})();

这里的问题部分是

sel.removeAllRanges();

var r2 = r1.cloneRange();
r1.setStart(textNode, 0);
r2.setEnd(textNode, 2);
sel.addRange(r1);
sel.addRange(r2); //<<============ HERE

当然我需要第二个范围来让

selectionSupportsMultipleRanges = (sel.rangeCount == 2);

工作!

我该如何解决这个问题?

有没有办法添加实际范围而不仅仅是开始参数?

最佳答案

如果你想要一个范围(从开始到结束),你可以这样做:

let range = document.createRange()
range.setStart(r1);
range.setEnd(r2);
let range2 ....


let sel = window.getSelection()
selection.removeAllRanges();
selection.addRange(range);
selection.addRange(range2);
....

我会看这里:

https://developer.mozilla.org/en-US/docs/Web/API/Range https://developer.mozilla.org/en-US/docs/Web/API/Selection/addRange

有关范围的更多信息。

希望这能回答您的问题(即使已经晚了)。

关于javascript - Selection.addRange() 已弃用 - 如何解决错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45104718/

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