这是我的问题:
当用户在文章或WYSWYG编辑器小部件的编辑区域中进行选择时,
选择可以跨越多个元素,
例如 anchor ,图像,跨度标签...甚至是块级元素(但我的问题中没有表格)。
我知道如何从选择中检索Range对象,
但找不到可靠的解决方案来获取Range
对象的内容文本。
我不是在寻找IE解决方案(其TextRange对象具有.text
属性)。
谢谢!
最佳答案
您是否看过Range上的quirksmode文章?
根据本文,您可以创建如下方法:
function getRangeText() {
var userSelection;
if (window.getSelection) {
userSelection = window.getSelection();
} else if (document.selection) {
userSelection = document.selection.createRange();
}
var selectedText = userSelection;
if (userSelection.text) {
selectedText = userSelection.text;
}
return selectedText;
}
我在FF5,Mac上的Opera 11,Safari以及IE6和IE7上对此进行了测试。值得在其他IE浏览器中进行测试,但我猜想它也可以在其中使用。