得到选定的文本的div在div中

我有一个div与contentEditable设置为true。 我必须find选定的文本html.I能够通过.FileFox获取选定的文本

window.getSelection(); 

IE浏览器的情况下,我能够通过使用获得选定的文本的HTML

 document.selection.createRange(). 

但是,如何在FireFox中find选定的文本html。 如何能做到这一点,请帮助。

select文本并将其存储在名为mytextvariables中。

 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();