在过去的几个小时里,我尝试让 YepNope 和一些 Modernizr 测试正常工作,但没有任何运气。
Modernizr 加载在头部、jQueryplugins.js
和script.js
页面底部(按此顺序)。没什么花哨的,但很方便,因为调用的每个资源在scripts.js
执行时都已经可用。所有脚本都正确加载,测试是唯一正在进行的脚本。
我想测试是否需要加载 polyfill 进行表单验证,所以这是测试:Modernizr.formvalidationapi
. 当然,我确保我的构建中包含Modernizr.addTest
了forms-validation
非核心检测,以及 HTML5 输入类型和属性以及Modernizr.load
,这基本上是yepnope.js
所以在我的script.js
,有以下内容:
yepnope({
test : Modernizr.formvalidationapi,
yep : alert("yep"),
nope : alert("nope")
});
我添加警报只是为了调试。
我在 Safari 6.0.2 和 Firefox 18.0.2 中对此进行了测试,两次都提示“是”,然后是“否”,所以我认为某处有错误。
我还尝试将代码包装在一个文档就绪包装器中,这没有任何改变。
由于 jQuery 在 Wordpress 中以无冲突模式运行,我相信(不能使用“$”,而必须使用“jQuery”),我将其包括在内以将美元符号重新映射到 jQuery:
(function($){})(window.jQuery);
它也什么也没做。
目前我认为这与 Wordpress 自己的wp_register_script
和有关wp_enqueue_script
,但我不确定,因为我认为可以在 Wordpress 站点中使用 Modernizr 测试。
我哪里错了?
PS:我知道还有http://wordpress.stackexchange.com,但我在这里发布了我的问题,因为我相信问题出在我的脚本中,而不是 Wordpress。如果您愿意,我当然可以在那里发布问题。