innerText 与 textContent - 在 Firefox 上出现一些错误

bru*_*zgr 3 javascript firefox internet-explorer

我在这里的脚本中遇到了一些错误,在第一个我声明了 var text(); 键入以创建一个包含一些文本内容的框。

var x=$('#x').text();
Run Code Online (Sandbox Code Playgroud)

在我的第二个 .js 中,我正在对这个 var 进行一些处理,以确保我的文本字符少于 max-length,这里是:

var limitMaxLength = function(element) {
   var maxLength = $(element).data("max-length");
      if (maxLength) {
         $(element).on("keypress", function(event){
            if (event.target.innerText.length > maxLength || event.keyCode === 13) {
               event.preventDefault();
            }
      });
   }
};
Run Code Online (Sandbox Code Playgroud)

所以我在 Firefox 上遇到了一些问题,出现了这个错误:[TypeError: event.target.innerText is undefined]

在 IE、Opera、Chrome 和 Safari 中,我的代码运行良好,但仅在 Firefox 上出现错误。*对不起,我的英语不好。

ndu*_*ger 5

innerText是旧时代遗留下来的 Microsoft Creation。Firefox 决定不支持它,而是支持符合 w3 的textContent. 但是,IE8 及以下版本不支持textContent,因此,如果您希望支持旧版浏览器,您就有点麻烦了。

var text = elem.textContent || elem.innerText;
Run Code Online (Sandbox Code Playgroud)

或者

elem.innerHTML // eww, but it works, eh?
Run Code Online (Sandbox Code Playgroud)

或者,放弃 IE8(说起来容易做起来难,尤其是在工作中)