innerText vs textContent - 在Firefox上获取一些错误 [英] innerText vs textContent - getting some errors on Firefox

查看:144
本文介绍了innerText vs textContent - 在Firefox上获取一些错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  var x = $('#x')。 

在我的第二个.js中,我正在处理这个var,确保我的文本有更少的字符比最大长度,这是:

  var limitMaxLength = function(element){
var maxLength = $(元素)。数据( 最大长度);
if(maxLength){
$(element).on(keypress,function(event){
if(event.target.innerText.length> maxLength || event.keyCode === 13){
event.preventDefault();
}
});
}
};

所以我在Firefox上遇到这个错误:
[TypeError:event.target .innerText是未定义的]

在IE,Opera,Chrome和Safari中我的代码工作正常,我只在Firefox上出错。
*对不起我的英文不好。

解决方案

innerText 是一个微软的创造,从旧时代遗留下来的。 Firefox决定不支持W3C标准, textContent 。但是,IE8&下面不支持 textContent ,因此,如果您希望支持传统浏览器,那么您就有点麻烦了。

  var text = elem.textContent || elem.innerText; 

  elem.innerHTML // eww,但它的作品,呃? 

或者,只是沟IE8(说起来容易,尤其是在工作中) $ b

I'd getting some errors on my scripts here, in the first one I've declared a var text(); type to create a box with some text content.

var x=$('#x').text();

In my second .js I'm doing some handling on this var that ensure my text i'll have less char than max-length, here is:

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();
            }
      });
   }
};

So I having some issues on Firefox getting this error: [TypeError: event.target.innerText is undefined]

In IE, Opera, Chrome and Safari my code works fine, i'm getting error only on Firefox. *Sorry for my bad english.

解决方案

innerText was a Microsoft Creation, left over from the days of old. Firefox decided not to support it in favour of the w3 compliant, textContent. However, IE8 & below do not support textContent, therefore, if you wish to support Legacy browsers, you're in a bit of a bind.

var text = elem.textContent || elem.innerText;

or

elem.innerHTML // eww, but it works, eh?

or, just ditch IE8 (easier said than done, especially at work)

这篇关于innerText vs textContent - 在Firefox上获取一些错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆