这是我的问题:

当用户在文章或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浏览器中进行测试,但我猜想它也可以在其中使用。

09-25 19:14