我想在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);
});
但是返回文字很简单。
有什么办法吗?
感谢您的帮助。
答案 0 :(得分: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/
我添加了纯文本选择,以防标记未完全选择并使用span而不是p
以避免添加换行符。它仍然会添加空<span>
;我无法想出一种避免这种情况的方法。
答案 1 :(得分: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;
}
}
借鉴this answer。