IE7 中的占位符

Posted

技术标签:

【中文标题】IE7 中的占位符【英文标题】:Placeholder in IE7 【发布时间】:2011-12-21 16:28:15 【问题描述】:

我已经厌倦了一些占位符插件来让它在 IE 中工作。目前我正在使用http://widgetulous.com/placeholderjs/。这适用于 IE8 和 9,但不适用于 IE7。它抛出一个 SCRIPT1028: Expected identifier, string or number placeholder.js,第 182 行字符 5 SCRIPT5009:“占位符”未定义 csr-form.html,第 72 行字符 3 - 这是我通过以下方式调用 placeholder.js 的地方:

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

有谁知道如何让它在 IE7 中工作,或者有人可以推荐另一个在 IE7 中工作的插件吗?

更新 这是小提琴, http://jsfiddle.net/clintongreen/NLWRL/

谢谢

【问题讨论】:

你能提供更多的上下文吗?该脚本是如何包含在页面中的,它与 Placeholder.js 包含的关系在哪里? 嗨,这是一个内部项目,但我会尝试在 jsfiddle 上创建一个模型,干杯 我想看看你的<script>标签,它们是如何排序的,以及它们在HTML中的位置。 嗨,Kevin,我创建了一个快速模型,jsfiddle.net/clintongreen/NLWRL Cheers 在这种情况下,我看到 Placeholder.init(); 出现在 Placeholder.js 脚本之后。在调用 Placeholder.init(); 之前加载 Placeholder.js 时,您能否验证问题在 IE7 中是否仍然存在? 【参考方案1】:

我在工作中使用Placeholder-jQuery-Plugin by mathiasbynens。

它说支持 IE6+,我们在 IE7 上没有遇到任何问题。

用法很好——在你的输入标签中设置占位符属性并在你的$(function())中调用$('input').placeholder();

【讨论】:

在 IE7 中,当我模糊出字段时,我得到一个输入调整大小【参考方案2】:

啊,你的问题是这样的散列中的尾随逗号


 'this':'blows',
 'up': 'ie7',

编辑:是的,我明白了,你在那个小提琴中的 utils 哈希后面有一个逗号。

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

未在 ie7 中测试,可能有更多尾随逗号隐藏在那里供您查找

顺便说一句,当您在 ie7 中看到 Expected identifier, string or number 时,9/10 倍的结尾是逗号。

【讨论】:

对于其他对 placeholder.js 1.1 版有此问题的人。只需删除第 182 行和第 229 行的尾随逗号即可。 提醒 Google 员工,感谢这个帖子,placeholder.js 版本 1.1.1 包含了 ie7 修复。

以上是关于IE7 中的占位符的主要内容,如果未能解决你的问题,请参考以下文章

输入字段占位符属性 ie7+

Modernizr.load 在 IE7/IE8 中不提供输入和文本区域占位符支持

ie7、ie8 和 ie9 的最佳占位符 polyfil 脚本 [关闭]

IE 中与 jquery 验证器一起使用的占位符

HTML5 占位符功能检测问题

IE8 的 Javascript 占位符不起作用 [重复]