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 は何も返さないことを期待しています。
ここで何が欠けているのか誰か教えてもらえますか?
ありがとう!