gpt4 book ai didi

javascript - 如何使用 JavaScript 从文本区域获取单击的单词

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

是否可以在 IE 和 Firefox 中使用 jquery 或 javascript 从文本区域获取点击的单词。目前我正在使用下面的代码,它在 Chrome 中工作得很好,但在 IE 和 Firefox 中根本不起作用。

<body>
<label for="result" style="display: none">Text</label>
<textarea id="result" rows="30" cols="100"></textarea>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

$("#result").click(function() {
if($(this).val() !== null && $(this).val() !== ''){
var selection = window.getSelection();
selection.modify('extend', 'backward', 'word');
var end = selection.toString();

selection.modify('extend', 'forward', 'word');
var start = selection.toString();
selection.modify('move', 'forward', 'character');
var wordInput = end+start;

console.log(wordInput);
}
});
</script>
</body>

预期工作

让我们假设一个带有文本的文本区域:“Hello World”

当我单击“Hello”中的任意位置时,它应该打印“Hello”而不是整个文本区域值。对于“世界”等也是如此。

IE 错误

SCRIPT438:对象不支持属性或方法“修改”

有人可以帮我吗?谢谢!

最佳答案

我想这段代码可以帮助你。

const getTheWord = (selectionStart, value) => {
let arr = value.split(" ");
let sum = 0
for (let i = 0; i < arr.length; i++) {
sum += arr[i].length + 1
if (sum > selectionStart) return arr[i]

}
}

const myArea = document.getElementById("myArea")
myArea.value = "Hello world!"
myArea.onclick = (e) => {
let i = e.currentTarget.selectionStart
console.log(getTheWord(i, myArea.value))
}
<textarea id="myArea"></textarea>

关于javascript - 如何使用 JavaScript 从文本区域获取单击的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60357627/

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