Home  >  Article  >  Web Front-end  >  JavaScript 选中文字并响应获取的实现代码_javascript技巧

JavaScript 选中文字并响应获取的实现代码_javascript技巧

WBOY
WBOYOriginal
2016-05-16 18:03:041227browse

本人不怎么会写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;
}
}

函数运行后会将选取的文字返回出来。  

原作者已不可考。。。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn