输入字段占位符属性 IE7+



我目前正在使用以下库:

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)

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

所以我不得不问:

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

2)有没有更好的方法来检查浏览器兼容性,然后像我一样明确要求IE?

这是我解决第一个问题的方式(直接检查 ie,而不是兼容性):

取代:

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

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

仍然不知道是否有更好的方法来解决此问题,然后真的超时

相关内容

  • 没有找到相关文章

最新更新