2

div内の選択したテキストのHTMLソースを取得し、それを警告したいと思います。

これは私のコードです:

if (!window.x) {
    x = {};
}
x.Selector = {};
x.Selector.getSelected = function() {
    var t = '';
    if (window.getSelection) {
        t = window.getSelection();
    } else if (document.getSelection) {
        t = document.getSelection();
    } else if (document.selection) {
        t = document.selection.createRange().text;
    }
    return t;
}

$(function() {

    $(document).bind("mouseup", function() {
        var mytext = x.Selector.getSelected();
        alert(mytext);
    });

ソース

しかし、それはプレーンテキストを返します。

方法はありますか?

助けてくれてありがとう。

4

2 に答える 2

3

http://www.codingforums.com/showthread.php?t=154848#post762994は、次のことを示唆しています。

function selHTML() {

    if (window.ActiveXObject) {
        var c = document.selection.createRange();
        return c.htmlText;
    }

    var nNd = document.createElement("p");
    var w = getSelection().getRangeAt(0);
    w.surroundContents(nNd);
    return nNd.innerHTML;
}

グーグルは良いです(とにかくしばしば):-)

デモ: http: //jsfiddle.net/rR8Sh/1/ タグが不完全に選択され、p改行の追加を回避する代わりにスパンを使用した場合に備えて、プレーンテキストの選択を追加しました。<span>ただし、それでも空が追加されます。私はそれを回避する方法を考えることができませんでした。

于 2012-04-07T16:24:44.430 に答える
1

私が正しく理解していれば、選択したノードのHTMLを取得したいですか?これを試して:

function getSelectedNode() {
    if (document.selection) {
        return document.selection.createRange().parentElement();
    } else {
        var selection = window.getSelection();
        if (selection.rangeCount > 0)
                return selection.getRangeAt(0).startContainer.parentNode;
    }
}

この答えから借りました。

于 2012-04-07T15:43:42.647 に答える