我正在尝试将WP网站使用Conditionizr V4,但无法使其正常运行。
我通过functions.php添加了JS文件,如下所示(是的,文件位于此处!):
wp_register_script('conditionizr', get_template_directory_uri() . '/assets/js/vendor/conditionizr.js', array(), '4.3.0'); // Conditionizr
wp_enqueue_script('conditionizr'); // Enqueue it!
然后,我将其添加到我的header.php中:
<?php wp_head(); ?>
<script>
// conditionizr.com
// configure environment tests
conditionizr.config({
assets: '<?php echo get_template_directory_uri(); ?>/assets/conditionizr/',
tests: {
'chrome':['class'],
'ie9': ['class'],
'ie8': ['class']
}
});
conditionizr.polyfill('//html5shiv.googlecode.com/svn/trunk/html5.js', ['ie6', 'ie7', 'ie8']);
</script>
</head>
但是,当我检查源代码时,没有在HTML标签中添加任何类吗?
在此处链接:http://website-test-lab.com/sites/xpect/
我错过了什么或做错了什么?提前致谢
最佳答案
当我们重建Conditionizr时,版本4的更改有了很大的跳跃,不再将检测打包作为核心的一部分。这样,测试更加可靠,核心库降至仅1KB!
首先,检查您使用的是最新版本,抓住here。
其次,您需要添加这些测试,但是需要在conditionizr.config()
上方声明它们:
Chrome(source):
conditionizr.add('chrome', [], function () {
return !!window.chrome && /google/i.test(navigator.vendor);
});
IE9(source):
conditionizr.add('ie9', [], function () {
return (Function('/*@cc_on return (/^9/.test(@_jscript_version) && /MSIE 9\.0(?!.*IEMobile)/i.test(navigator.userAgent)); @*/')());
});
IE8(source):
conditionizr.add('ie8', [], function () {
return (Function('/*@cc_on return (@_jscript_version > 5.7 && !/^(9|10)/.test(@_jscript_version)); @*/')());
});
在版本4中,您还可以选择是使用config模块来声明哪些测试,还是更简单的方法是将它们添加到空数组中,例如
class
:conditionizr.add('chrome', ['class'], function () {
return !!window.chrome && /google/i.test(navigator.vendor);
});
可以在here和Docs中找到所有其他检测。