innerText выдает ошибку в Mozilla Firefox (считать слова и символы HTML) - PullRequest
0 голосов
/ 23 декабря 2009

Я хочу посчитать количество слов и количество символов в тексте HTML (TEMP),

и при этом я хочу пропустить HTML-теги и HTML-ключевые слова (ex.  )

предположим, что я получаю текст HTML в моей функции JavaScript как

var TEMP= result.data;  

// where result.data='<p>BODY&nbsp;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 & Chrome,

, но этот код не работает в Mozilla Firefox, так как приведенный выше код имеет свойство .innerText , которое не поддерживается FireFox, поэтому я также пробовал o.k.w код , но не работал в 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) и соответственно изменить код .?

есть ли другой способ подсчета слов и символов, чтобы избежать этой проблемы ??

Ответы [ 2 ]

3 голосов
/ 23 декабря 2009

хай элькон,

Вы можете использовать «textContent» в Mozilla, что эквивалентно «innerText» в IE.

function getInnerText(o)
 {
   return o.textContent ? o.textContent : o.innerText;
 }
0 голосов
/ 02 января 2012

, если вы хотите сделать браузер независимым, используйте этот код

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;    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...