Javascript 以编程方式调用模糊时是否清除只读文本区域选择?

Javascript 以编程方式调用模糊时是否清除只读文本区域选择?,javascript,html,typescript,Javascript,Html,Typescript,我有一个只读的文本区域,文本是通过编程方式添加的 当我在此元素上调用blur时,在其中选择的任何文本都保持选中状态 下面是一个演示: 让ta=document.getElementById(“ta”) ta.value=“选择我,然后按键!” ta.addEventListener(“模糊”,()=>{ ta.设置选择范围(0,0) }); ta.addEventListener(“按键键”,()=>{ ta.blur()//根据,它是myTextArea.setSelectionRange(

我有一个只读的文本区域,文本是通过编程方式添加的

当我在此元素上调用
blur
时,在其中选择的任何文本都保持选中状态

下面是一个演示:

让ta=document.getElementById(“ta”)
ta.value=“选择我,然后按键!”
ta.addEventListener(“模糊”,()=>{
ta.设置选择范围(0,0)
});
ta.addEventListener(“按键键”,()=>{
ta.blur()//根据,它是
myTextArea.setSelectionRange(0,0)


您应该使用
setSelectionRange
方法,如下所示:

myTextArea.addEventListener(“模糊”,()=>{
myTextArea.setSelectionRange(0,0);
});
myTextArea.textContent=`myTextArea.addEventListener(“模糊”),()=>{
myTextArea.setSelectionRange(0,0)
});`;
myTextArea.addEventListener(“keydown”,()=>{
myTextArea.dispatchEvent(新焦点事件('blur'));
myTextArea.blur();
});

否,
setSelectionRange
不起作用。请参阅此提琴:如果文本区域为只读,则在Chrome中不起作用(第一篇文章中未提及),你是对的。但是,如果文本区域不是只读的,它在Chrome中确实有效,并且在Firefox中始终有效。请查看我的更新答案。你没有以编程方式调用
blur
。修复了,请查看我的UpdateAnks,但仍然没有在按键下取消选中文本…这很奇怪,似乎只在Firefox中有效,无法在Chrome中工作,musDon’不要尝试其他的方法,因为chrome似乎不会为
只读
目标触发
模糊
事件,所以必须以编程方式触发此事件
// (Text is selected in the textarea)
myTextArea.addEventListener("blur", () => {
    myTextArea.setSelectionRange(0, 0)
})
myTextArea.blur()