本人不怎么会写JS,但是会搜索,这里找到了些别人写好的东西:- select(document, tanchu);
- /*=select[[
- *
- * 跨浏览器选中文字事件
- * @param
- * object o 响应选中事件的DOM对象,required
- * function fn(sText,target,mouseP)选中文字非空时的回调函数,required
- * |-@param
- * |-sText 选中的文字内容
- * |-target 触发mouseup事件的元素
- * |-mouseP 触发mouseup事件时鼠标坐标
- */
- function select(o, fn){
- o.onmouseup = function(e){
- var event = window.event || e;
- var target = event.srcElement ? event.srcElement : event.target;
- if (/input|textarea/i.test(target.tagName) && /firefox/i.test(navigator.userAgent)) {
- //Firefox在文本框内选择文字
- var staIndex=target.selectionStart;
- var endIndex=target.selectionEnd;
- if(staIndex!=endIndex){
- var sText=target.value.substring(staIndex,endIndex);
- fn(sText,target);
- }
- }
- else{
- //获取选中文字
- var sText = document.selection == undefined ? document.getSelection().toString():document.selection.createRange().text;
- if (sText != "") {
- //将参数传入回调函数fn
- fn(sText, target);
- }
- }
- }
- }
- /*]]select=*/
- function tanchu(txt,tar){
- alert("文字属于"+tar.tagName+"元素,选中内容为:"+txt);
- }
复制代码
原作者见:http://momomolice.com/wordpress/archives/420.html
附:只获得选取的文字的代码(不响应该事件)- function getSelectedText()
- {
- if (window.getSelection)
- { // This technique is the most likely to be standardized.
- // getSelection() returns a Selection object, which we do not document.
- return window.getSelection().toString();
- }
- else if (document.getSelection)
- {
- // This is an older, simpler technique that returns a string
- return document.getSelection();
- }
- else if (document.selection)
- {
- // This is the IE-specific technique.
- // We do not document the IE selection property or TextRange objects.
- return document.selection.createRange().text;
- }
- }
复制代码
函数运行后会将选取的文字返回出来。
原作者已不可考。。。 |