IE7中的占位符

6

我已经尝试了几个占位符插件来使其在IE中运行。目前我正在使用http://widgetulous.com/placeholderjs/。这可以在IE8和9中使用,但无法在IE7中使用。它会抛出SCRIPT1028:预期的标识符、字符串或数字 placeholder.js,第182行第5个字符 SCRIPT5009:'Placeholder'未定义 csr-form.html,第72行第3个字符-这是我通过以下方式调用placeholder.js的地方:

$(function(){
    // Placeholder
    Placeholder.init();
});

有人知道如何在IE7中使这个插件工作,或者可以建议另一个在IE7中可用的插件吗?

更新 这是JSFiddle链接, http://jsfiddle.net/clintongreen/NLWRL/

谢谢


1
你能提供更多的上下文吗?那个脚本是如何包含在页面中的,它与 Placeholder.js 的包含有什么关系? - Kevin
嗨,这是一个内部项目,但我会尝试在 jsfiddle 上创建一个模型,谢谢。 - Clinton Green
1
我只想看看你的<script>标签,它们是如何排序的,以及它们在HTML中的包含位置。 - Kevin
嗨,Kevin,我创建了一个快速的模型,http://jsfiddle.net/clintongreen/NLWRL/。干杯! - Clinton Green
在这种情况下,我看到 Placeholder.init(); 在 Placeholder.js 脚本之后。当 Placeholder.js 在 Placeholder.init(); 调用之前加载时,您能验证问题在 IE7 中是否仍然存在吗? - Kevin
嗨,是的,如果我改变顺序,它仍然会做同样的事情 :( - Clinton Green
2个回答

9
我在工作中使用mathiasbynens的Placeholder-jQuery-Plugin
它支持IE6+,我们在IE7上也没有遇到任何问题。
使用很方便 - 在您的输入标记中设置占位符属性,并在$(function())中调用$('input').placeholder();

在IE7中,当我从字段中移开焦点时,输入框会自动调整大小。 - Roland

4

啊,你的问题是在哈希表中有一个末尾逗号

{
 'this':'blows',
 'up': 'ie7',
}

编辑: 是的,我看到了,在那个jsfiddle中,你的utils哈希表末尾有一个逗号。

这是修复方法: http://jsfiddle.net/NLWRL/1/

未在ie7中进行测试,可能还有更多的逗号需要你去找。

顺便说一下,当你在ie7中看到Expected identifier, string or number时,有9/10的可能是因为有逗号存在。


对于其他遇到 placeholder.js 版本 1.1 问题的人,只需删除第 182 行和第 229 行的尾随逗号即可。 - Clinton Green
提醒谷歌员工,由于这个帖子的帮助,placeholder.js版本1.1.1已经包含了ie7修复。 - dev_row

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接