从contentEditable div提取文本

从contentEditable div提取文本,第1张

从contentEditable div提取文本

直到现在,当Nico对其悬赏时,我都忘记了这个问题。

我通过编写自己需要的功能,从现有的jQuery代码库中编写一个功能并对其进行修改以根据需要工作来解决了该问题。

我已经使用Safari(WebKit),IE,Firefox和Opera对该功能进行了测试。因为整个contentEditable都是非标准的,所以我没有费心检查其他任何浏览器。如果任何浏览器的更新更改了实现contentEditable的方式,也可能会破坏该功能。所以程序员要当心。

function extractTextWithWhitespace(elems){    var lineBreakNodeName = "BR"; // Use <br> as a default    if ($.browser.webkit)    {        lineBreakNodeName = "DIV";    }    else if ($.browser.msie)    {        lineBreakNodeName = "P";    }    else if ($.browser.mozilla)    {        lineBreakNodeName = "BR";    }    else if ($.browser.opera)    {        lineBreakNodeName = "P";    }    var extractedText = extractTextWithWhitespaceWorker(elems, lineBreakNodeName);    return extractedText;}// Cribbed from jQuery 1.4.2 (getText) and modified to retain whitespacefunction extractTextWithWhitespaceWorker(elems, lineBreakNodeName){    var ret = "";    var elem;    for (var i = 0; elems[i]; i++)    {        elem = elems[i];        if (elem.nodeType === 3     // text node || elem.nodeType === 4) // CDATA node        { ret += elem.nodevalue;        }        if (elem.nodeName === lineBreakNodeName)        { ret += "n";        }        if (elem.nodeType !== 8) // comment node        { ret += extractTextWithWhitespace(elem.childNodes, lineBreakNodeName);        }    }    return ret;}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5101338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存