gpt4 book ai didi

JavaScript:当文本位于文本区域内时,所选文本不会被替换

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

我在用预定义的替换文本替换 textarea 中的选定文本时遇到问题。

要替换文本,我必须选择它并单击鼠标右键。

如果文本在 <div> 中,则替换会正确进行或 <p>标签。但是如果文本在 <textarea> 中, 它没有被正确替换。

Fiddle 中提供了示例

这是我的代码:

HTML:

<p> Select any text in this sentence and right click to replace it </p>

<div>
<textarea name = "intro" rows = "5" cols = "80">This text is not getting replaced as expected
</textarea>
</div>

JS:

if (document.addEventListener) {
document.addEventListener('contextmenu', function(e) {
replaceSelectedText("<<replaced>>");
e.preventDefault();
}, false);
} else {
document.attachEvent('oncontextmenu', function() {
alert("You've tried to open context menu");
window.event.returnValue = false;
});
}

function replaceSelectedText(replacementTxt) {
var sel, range;
if (window.getSelection) {
sel = window.getSelection();
console.log(sel);
if (sel.rangeCount) {
range = sel.getRangeAt(0);
console.log(range);
range.deleteContents();
range.insertNode(document.createTextNode(replacementTxt));
}
} else if (document.selection && document.selection.createRange) {
console.log("!!")
range = document.selection.createRange();
range.text = replacementTxt;
}
}

我的实现方式有问题吗?

如有任何建议,我们将不胜感激。

最佳答案

您应该使用 .value 来更改文本区域的文本。

看看这个question

关于JavaScript:当文本位于文本区域内时,所选文本不会被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27353094/

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