得到选定的文本的div在div中
我有一个div与contentEditable设置为true。 我必须find选定的文本html.I能够通过.FileFox获取选定的文本
window.getSelection();
IE浏览器的情况下,我能够通过使用获得选定的文本的HTML
document.selection.createRange().
但是,如何在FireFox中find选定的文本html。 如何能做到这一点,请帮助。
select文本并将其存储在名为mytext
variables中。
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); }); });
查看http://jsfiddle.net/YstZn/1/上的工作示例;
要将选定的HTML作为string获取,可以使用以下函数:
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; } } return html; }
window.getSelection().getRangeAt(0);
它返回一个文档片段。 它包含select开始和结束的节点以及其他一些多汁的东西。 用FireBug或其他JavaScript控制台检查它,&& || 获取更多信息
得到一个div的文本,你这样做:(在jQuery中)
var text = $('div.selector').text();