gpt4 book ai didi

javascript - 在 JavaScript 中,如何拥有一个只读文本区域并仍然获得 onselect 事件?

转载 作者:行者123 更新时间:2023-11-30 06:45:19 25 4
gpt4 key购买 nike

我注意到如果我将文本区域设置为“只读”我不再收到 onselect 事件。

var ta = document.createElement('textarea');
ta.readonly = true;
ta.onselect = function() { ... } // This one works only if the ta.readonly is commented out.

我需要 textarea 是只读的,并在用户选择某个范围时得到通知。有人可以帮忙吗?

最佳答案

没有直接的方法可以通过动态调整文本区域的只读属性 onfocus、onblur、onselect 等同时始终接收 onselect 事件来做到这一点。

如果您的目标是确保用户无法编辑/操作文本区域,那么我可能只是将文本区域保留为非只读(以接收选择事件),但通过使用 preventDefault( ) 在输入事件上,像这样:

var ta = document.createElement('textarea');

// prevent user input
ta.addEventListener('cut', function(e) { e.preventDefault(); }, false);
ta.addEventListener('copy', function(e) { e.preventDefault(); }, false);
ta.addEventListener('paste', function(e) { e.preventDefault(); }, false);
ta.addEventListener('keydown', function(e) { e.preventDefault(); }, false);

// listen for user selections
ta.addEventListener('select', function() {
// function logic...
}, false);

关于javascript - 在 JavaScript 中,如何拥有一个只读文本区域并仍然获得 onselect 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474188/

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