如何使用JavaScript从textarea获取单击过的单词
是否可以在IE和Firefox中使用jquery或javascript从textarea中点击word。目前我正在使用下面的代码,它在Chrome中运行得非常好,但在IE和Firefox中根本不起作用如何使用JavaScript从textarea获取单击过的单词,javascript,jquery,textarea,Javascript,Jquery,Textarea,是否可以在IE和Firefox中使用jquery或javascript从textarea中点击word。目前我正在使用下面的代码,它在Chrome中运行得非常好,但在IE和Firefox中根本不起作用 <body> <label for="result" style="display: none">Text</label> <textarea id="result" rows="30" cols="100"></textarea> &
<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>
正文
$(“#结果”)。单击(函数(){
if($(this.val()!==null&$(this.val()!=''){
var selection=window.getSelection();
选择。修改('extend','backward','word');
var end=selection.toString();
选择。修改('extend','forward','word');
var start=selection.toString();
选择。修改('move'、'forward'、'character');
var wordInput=结束+开始;
console.log(wordInput);
}
});
预期工作时间
让我们假设有一个文本区域:“Hello World”
当我点击“Hello”中的任意位置时,它应该打印“Hello”,而不是整个textarea值。类似于“世界”等等
IE中的错误
SCRIPT438:对象不支持属性或方法“modify”
有人能帮我吗?谢谢 我想这段代码可以帮助你
const getTheWord=(selectionStart,value)=>{
设arr=value.split(“”);
设和=0
for(设i=0;i选择开始)返回arr[i]
}
}
const myArea=document.getElementById(“myArea”)
myArea.value=“你好,世界!”
myArea.onclick=(e)=>{
设i=e.currentTarget.selectionStart
log(getTheWord(i,myArea.value))
}
我想这段代码可以帮助你
const getTheWord=(selectionStart,value)=>{
设arr=value.split(“”);
设和=0
for(设i=0;i选择开始)返回arr[i]
}
}
const myArea=document.getElementById(“myArea”)
myArea.value=“你好,世界!”
myArea.onclick=(e)=>{
设i=e.currentTarget.selectionStart
log(getTheWord(i,myArea.value))
}