0

JSフィドル

JS

function getSelectionHtml() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var container = document.createElement("div");
            for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                container.appendChild(sel.getRangeAt(i).cloneContents());
            }
            html = container.innerHTML;
        }
    } else if (typeof document.selection != "undefined") {
        if (document.selection.type == "Text") {
            html = document.selection.createRange().htmlText;
        }
    }
    console.log(html);  <-- returning text even not selected.
}

$(document).ready(function(){
        $(document).bind("mouseup", getSelectionHtml);
});

現在、次の動作を理解しようとしています。

1) 数行のテキストを選択します (console.log にそれらの行が表示されます)。

2) 選択した範囲内をクリックします。Console.log には、選択された前と同じテキストが表示されます。- 期待できません; ここでは、現在何も選択されていないため、getSelection は何も返さないことを期待しています。

ここで何が欠けているのか誰か教えてもらえますか?

ありがとう!

4

1 に答える 1