我想算一些单词& html文本(TEMP)中的字符数,
在执行此操作时,我想跳过HTML标记和html关键字(ex.
)
假设我在我的JavaScript函数中获取HTML文本
var TEMP= result.data;
// where result.data='<p>BODY Article By Archie(Used By Story Tool)</p>';
我做到了这一点:
var e = document.createElement("span");
e.innerHTML = TEMP;
var text = e.innerText;
var characterCount = text.length;
var wordCount = text.match(/\b\w/g).length;
适用于Internet Explorer&amp;铬,
但是这段代码在mozilla firefox中不起作用,因为上面的代码有 .innerText 属性,FireFox不支持 我也试过o.k.w的code但是没有在mozilla中工作
o.k.w的代码
function getCharCount(str){
var d = document.createElement("div");
d.innerHTML = str;
if(d.innerText) //for IE and others
alert(d.innerText.length);
else //for FF
alert(d.textContent.length);
}
请帮助
和重要这应该适用于所有(IE,Chrome,Mozilla Firefox)浏览器。
我们可以检测浏览器(ch,IE,FF)并相应地更改代码。?
还有其他方法来计算单词和字符以避免此问题吗?
答案 0 :(得分:3)
Hai elcon,
你可以在mozilla中使用“textContent”,这相当于IE中的“innerText”。
function getInnerText(o)
{
return o.textContent ? o.textContent : o.innerText;
}
答案 1 :(得分:0)
如果你想让浏览器独立使用这个代码
var field = document.getElementById(id); // where u want to use innertext
if(field != null)
{
if(navigator.appName == "Netscape") // appName for both FireFox and Chrome its is "Netscape" i checked it with different version.
field.textContent = value;
else // for For IE v 8 i checked .textContent is not supported by IE for me it was not working.
field.innerText = value;
}