Javascript 输入字段占位符属性ie7+;
我目前正在使用以下库: 并使用以下代码检测使用的必要性/并将其应用于需要的领域:Javascript 输入字段占位符属性ie7+;,javascript,internet-explorer,coffeescript,placeholder,browser-detection,Javascript,Internet Explorer,Coffeescript,Placeholder,Browser Detection,我目前正在使用以下库: 并使用以下代码检测使用的必要性/并将其应用于需要的领域: if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1 $ -> Placeholder.init() numPlaceHolders = $('input[placeholder]').length window.setInter
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)。不幸的是,ie支持是必须的,并且占位符属性不受支持
因此,我必须回答以下问题:
1) 如何强制占位符.init()应用于所有具有占位符属性的新输入字段?有没有办法避免连续循环间隔?我知道DomChange事件(各种各样),但据我所知,它们是a)不推荐的,b)在ie中不受支持的
2) 有没有更好的方法来检查浏览器的兼容性,而不是像我这样明确要求ie?以下是我如何解决第一个问题的(直接检查ie而不是兼容性): 替换:
if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1
与
仍然不知道是否有更好的方法来解决这个问题,那么超时真的Placeholder.js是否已经为您检测到UA了?使用jQuery,所有这些都变得容易多了。这是一个选项吗?jquery是一个完全可以接受的选项,事实上,我相信我在上面的代码片段中使用了一些jquery?
if typeof(document.createElement('input').placeholder) == "undefined"