Conditionizr V4问题

时间:2014-05-25 08:17:21

标签: javascript wordpress

我尝试将Conditionizr V4与WP网站一起使用,但无法使其正常运行。

我已经通过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/

我错过了什么或做错了什么?!提前致谢

1 个答案:

答案 0 :(得分:1)

当我们重建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,您还可以选择是否使用配置模块声明哪些测试,或者是否可以更容易地将它们添加到空数组中,例如class

conditionizr.add('chrome', ['class'], function () {
  return !!window.chrome && /google/i.test(navigator.vendor);
});

可以找到所有其他检测here以及Docs