我可以从文本或textarea之外的文本选择中获取Javascript事件吗?

时间:2009-11-24 17:11:52

标签: javascript text onselect

我想知道用户何时使用Javascript在html页面中选择文本。该文本不应该是可编辑的。 onselect事件似乎仅适用于<textarea><input type="TEXT">标记。如果禁用任一标记,则不会触发该事件。

这些标签是否有解决方法?

是否存在完全不同的方法?

3 个答案:

答案 0 :(得分:2)

当然,这里有一个例子:http://www.codetoad.com/javascript_get_selected_text.asp

使用您在此处看到的内容,您可以将事件绑定到文档正文的单击/释放事件,并检查是否存在选择,以及选择确定他们是否选择了任何文本的时间。

StackOverflow存档:

  1. What's the event fired when a user selects text on a page?
  2. Javascript to get Paragraph of Selected Text in WebPage

答案 1 :(得分:2)

您可以捕获mouseUp事件,并检查是否使用window.getSelection()选择了某些文字。

但是,此方法可能不兼容跨浏览器(window.getSelection())。

编辑:这是一个非常完整的示例mouseUp绑定:http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

答案 2 :(得分:0)

以跨浏览器的方式做这件事并不容易。在IE中,只有select事件适用于正文文本以及表单输入,因此可以执行您想要的操作,但是为了检测用户何时以跨浏览器方式进行选择,您需要同时处理keyup事件mouseup事件。 1}}和window.getSelection()个事件。即使这样,您也不会使用“全选”菜单选项(通常位于编辑和右键单击上下文菜单中)检测选择事件,例如用户。因此,您需要定期轮询并检查选择对象的属性(通过IE中的document.selection或{{1}}获取)。