我想知道用户何时使用 Javascript 在 html 页面中选择文本。文本不应是可编辑的。该onselect
事件似乎只适用于<textarea>
和<input type="TEXT">
标签。如果任一标签被禁用,则不会触发该事件。
这些标签有没有办法解决这个问题?
有完全不同的方法吗?
我想知道用户何时使用 Javascript 在 html 页面中选择文本。文本不应是可编辑的。该onselect
事件似乎只适用于<textarea>
和<input type="TEXT">
标签。如果任一标签被禁用,则不会触发该事件。
这些标签有没有办法解决这个问题?
有完全不同的方法吗?
当然,这里有一个例子:http: //www.codetoad.com/javascript_get_selected_text.asp
使用您在此处看到的内容,您可以将事件绑定到文档正文的单击/释放事件,并检查是否有选择,以及选择多长时间以确定他们是否选择了任何文本。
您可以捕获mouseUp
事件,并检查是否使用window.getSelection()
.
但是,此方法可能不兼容跨浏览器(window.getSelection()
)。
编辑:这是一个非常完整的mouseUp
绑定示例:http: //mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html
以跨浏览器的方式做到这一点并不容易。在 IE 中,该select
事件仅适用于正文文本和表单输入,因此可以执行您想要的操作,但是要检测用户何时以跨浏览器的方式进行了选择,您需要同时处理keyup
和mouseup
事件。即使这样,您也不会检测到选择事件,例如用户使用“全选”菜单选项(通常在“编辑”和右键单击上下文菜单中找到)。因此,您只需定期轮询并检查选择对象的属性(通过IEwindow.getSelection()
或document.selection
在 IE 中获得)。