我目前正在使用以下库:
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)有没有更好的方法来检查浏览器的兼容性,然后明确要求即我正在做什么?
答案 0 :(得分:0)
以下是我如何解决第一个问题(直接检查,而不是兼容性):
更换:
if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1
与
if typeof(document.createElement('input').placeholder) == "undefined"
仍然不知道是否有更好的方法来解决这个问题,然后确实超时