在WebKit innerText
似乎返回用户看到的元素的文本,这正是我需要的。
Firefox是否有任何polyfill?
例如:
<div id='1'><br> f<div style='display:none'>no</div>oo bar</div> <script> function test(){ return document.getElementById('1').innerText } </script>
功能测试将返回“\ n foo bar”。
目标是制作一个可编辑的文本区域,其中链接可以点击,标签突出显示,以及在键入时动态创建链接和突出显示的位置。
我的方法是:
在每个键盘上:
innerText
innerText
谢谢!
答案 0 :(得分:1)
您可以使用Firefox中toString()
对象的Selection
方法,其行为与innerText
非常相似。由于您在示例中提取innerText
之前已经保存了光标位置,因此以下内容无需保存和恢复选择,但您应该这样做。
function getInnerText(el) {
var text = "";
if (typeof window.getSelection != "undefined") {
var sel = window.getSelection();
sel.removeAllRanges();
var range = document.createRange();
range.selectNodeContents(el);
sel.addRange(range);
text = sel.toString();
sel.removeAllRanges();
}
return text;
}
答案 1 :(得分:1)
Firefox可能会实现innerText,因为Aryeh Gregor正在为innerText编写规范。
请参阅http://aryeh.name/spec/innertext/innertext.html和http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-February/030179.html