输入字段占位符属性ie7 +

时间:2013-02-01 23:55:13

标签: javascript internet-explorer coffeescript placeholder browser-detection

我目前正在使用以下库:

http://widgetulous.com/placeholderjs/

使用以下代码检测使用的必要性/并将其应用于需要它的字段:

 if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1
    $ ->
       Placeholder.init()
       numPlaceHolders = $('input[placeholder]').length
       window.setInterval(=>
          if ($('input[placeholder]').length != numPlaceHolders)
             numPlaceHolders = $('input[placeholder]').length
             Placeholder.init()
      , 1000)

拥有Interval的原因是元素是在运行时动态生成的(我使用Angular JS)。不幸的是,即支持是必须的,占位符属性不受支持......

所以我有问题:

1)如何强制Placeholder.init()应用于具有占位符属性的所有新输入字段?有没有办法避免连续的循环间隔?我知道DomChange事件(各种各样),但据我所知他们是a)弃用和b)不支持ie?

2)有没有更好的方法来检查浏览器的兼容性,然后明确要求即我正在做什么?

1 个答案:

答案 0 :(得分:0)

以下是我如何解决第一个问题(直接检查,而不是兼容性):

更换:

 if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1

 if typeof(document.createElement('input').placeholder) == "undefined"

仍然不知道是否有更好的方法来解决这个问题,然后确实超时