跨越 contenteditable Firefox 93
span contenteditable Firefox 93
我正在使用 contenteditable
属性作为跨度的输入字段,通常它工作正常,但现在我遇到了问题,如果我在 Firefox 93 中 select 多于 1 行并尝试用另一个文本替换它们,它不起作用,在 Chrome/Safari 甚至 Firefox 92 中它都可以正常工作。它现在似乎只对每一行有效。
会不会是bug,或者我用错了?
var spanContent = `Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.`;
window.addEventListener('load', function () {
var span = document.getElementById('myEditable');
span.innerText = spanContent;
var range = new Range();
range.setStart(span, 2);
range.setEnd(span, 5);
document.getSelection().addRange(range);
});
<span contenteditable="true" id="myEditable"></span>
我可以在 Firefox 94.0.1 上重现此行为,它会导致我们的应用程序出现问题。看起来像是 Firefox 中的回归错误。我已经在 bugzilla 上提交了一个错误,希望他们发现它相关:
https://bugzilla.mozilla.org/show_bug.cgi?id=1740492
我使用了您的代码片段的更简单版本(在 firefox 上浏览 SO 以重现错误):
<html>
<span contenteditable="true">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. <br>
At vero eos et accusam et justo duo dolores et ea rebum.<br>
Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<br>
At vero eos et accusam et justo duo dolores et ea rebum.<br>
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
</span>
</html>
我正在使用 contenteditable
属性作为跨度的输入字段,通常它工作正常,但现在我遇到了问题,如果我在 Firefox 93 中 select 多于 1 行并尝试用另一个文本替换它们,它不起作用,在 Chrome/Safari 甚至 Firefox 92 中它都可以正常工作。它现在似乎只对每一行有效。
会不会是bug,或者我用错了?
var spanContent = `Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.`;
window.addEventListener('load', function () {
var span = document.getElementById('myEditable');
span.innerText = spanContent;
var range = new Range();
range.setStart(span, 2);
range.setEnd(span, 5);
document.getSelection().addRange(range);
});
<span contenteditable="true" id="myEditable"></span>
我可以在 Firefox 94.0.1 上重现此行为,它会导致我们的应用程序出现问题。看起来像是 Firefox 中的回归错误。我已经在 bugzilla 上提交了一个错误,希望他们发现它相关:
https://bugzilla.mozilla.org/show_bug.cgi?id=1740492
我使用了您的代码片段的更简单版本(在 firefox 上浏览 SO 以重现错误):
<html>
<span contenteditable="true">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. <br>
At vero eos et accusam et justo duo dolores et ea rebum.<br>
Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.<br>
At vero eos et accusam et justo duo dolores et ea rebum.<br>
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet
</span>
</html>