Javascript 操控选择文本

Querying Selected Text
查询选择的文本

[quote]This is an area where little standardization exists, but it is possible to query the selected text in all modern browsers.[/quote]

在这个方面,没有什么标准存在;但还是有可能读取用户选择的文本的:

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;
}
}


The Selection and TextRange objects
Selection和TextRange对象

[quote]The getSelection() methods of the Window and Document object do not return selected text if it is within an <input> or <textarea> form element: they only return text selected from the body of the document itself.
The IE document.selection property, on the other hand, returns selected text from anywhere in the document.
[/quote]

getSelection()方法是无法返回输入框或文本域中的内容的,它只能返回文档本身的文字内容。
但是IE独有的document.selection属性倒是哪里的内容都可以访问到。

function getTextFieldSelection(e) {
if (e.selectionStart != undefined && e.selectionEnd != undefined) {
var start = e.selectionStart;
var end = e.selectionEnd;
return e.value.substring(start, end);
}
else return ""; // Not supported on this browser
}


很多网上划词的功能都是建立在这些方法上的,值得学习~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值