我正在尝试将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);
});


可以在hereDocs中找到所有其他检测。

08-06 07:00