我尝试使用两个不同的 jquery 插件来让占位符在 ie9 中工作,Andrew Jones 一个和Mathias Bynens 一个。
不幸的是,他们都给了我同样的问题,我一生都无法弄清楚。第一个问题是,在 JS 控制台中时不时出现以下错误:
SCRIPT438: Object doesn't support property or method 'placeholder'
...就好像脚本没有加载一样,即使它已经加载了。当我刷新页面时,它通常有 50/50 的机会出现该错误。我遇到的下一个问题是有时占位符甚至不会显示,但是当我单击输入字段然后单击其他地方时,占位符文本最终会出现。
这是在 Rails 应用程序中使用的。我正在使用这样的占位符,在顶部main.js document.ready()
if (navigator.userAgent.match(/MSIE\s(?!10.0)/)) {
$(":input[placeholder]").placeholder();
}
我layouts/application.html.erb
像这样包含脚本:
<%=stylesheet_link_tag "normalize"%>
<%=stylesheet_link_tag "main"%>
<%=stylesheet_link_tag "r"%>
<%=stylesheet_link_tag "1140"%>
<%=stylesheet_link_tag "ie"%>
<%=stylesheet_link_tag "jquery.placeholder.min"%>
<%=javascript_include_tag "vendor/jquery-1.8.0.min.js"%>
<%=javascript_include_tag "vendor/modernizr-2.6.1.min.js"%>
<%=javascript_include_tag "vendor/css3-mediaqueries.js"%>
<%=javascript_include_tag "vendor/jquery.fitvids.js"%>
<%=javascript_include_tag "plugins.js"%>
<%=javascript_include_tag "rails.js"%>
<%=javascript_include_tag "jquery.placeholder.min.js"%>
<%=javascript_include_tag "main.js.erb"%>
<%=csrf_meta_tag %>
对此问题的任何帮助将不胜感激。