Onselect 事件不会在 div 上触发
Posted
技术标签:
【中文标题】Onselect 事件不会在 div 上触发【英文标题】:Onselect event doesn't fire on div 【发布时间】:2010-09-28 14:31:18 【问题描述】:我无法触发附加到 元素的 onselect 事件处理程序。是否可以强制 发出 select 事件?
【问题讨论】:
根据w3schools,onSelect 只定义在 input 和 textarea 对象上。
您可以尝试在当前窗口/文档中捕捉MouseUp event 和retrieve the selected text。
【讨论】:
【参考方案2】:您可以通过使用onMouseUp
事件来实现您想要的。见下文...
<html>
<body>
<div id="container" style="border: 1px solid #333" contentEditable="true" onMouseUp="checkMe()">Type text here</div>
</body>
<script language="javascript">
function checkMe()
var txt = "";
if (window.getSelection)
txt = window.getSelection();
else if (document.getSelection)
txt = document.getSelection();
else if (document.selection)
txt = document.selection.createRange().text;
alert("Selected text is " + txt);
</script>
</html>
【讨论】:
这或多或少是我正在寻找的,但它没有考虑用户使用键盘扩展或移动选择的可能性。但是,将相同的逻辑绑定到 onKeyUp 可能会起作用。【参考方案3】:使用OnClick
。
:select
仅适用于某些表单元素。
【讨论】:
以上是关于Onselect 事件不会在 div 上触发的主要内容,如果未能解决你的问题,请参考以下文章
JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。
easyui combobox setValue方法不能触发onSelect事件