我在我的一个项目中使用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添加到头部,一切都运行良好。我以为我会指出这一点。