我在我的一个项目中使用 Modernizr。我想在下载 polyfill 之前测试占位符的存在。这是我用来完成此操作的代码:
yepnope({
test : Modernizr.input.placeholder,
nope : '/js/jquery.placeholder.js',
complete: function(){
$('input, textarea').placeholder();
}
});
我遇到了一个奇怪的问题。当我在没有从缓存加载任何资源的情况下点击页面时,它可以完美运行,但是如果我刷新页面,我会收到调用 .placeholder() 的未定义方法错误。
查看开发工具,一个空的 jquery.placeholder.js(来自缓存)似乎是罪魁祸首。我可以在 Fiddler 中验证第二个响应是否返回 304,并发送一个空正文,这意味着 IE 缓存中应该有正确的版本,但不知何故它是空的。什么可能导致这种行为?
编辑:如果我将 placeholder.js 添加到头部,则一切正常。只是想我会指出这一点。