有没有办法把php放到IE条件注释里面?


internet explorer - Is there a way to put php inside of a IE conditional comments

我有一个php部分,通过wordpress从谷歌的api加载jquery。我不想在IE浏览器上加载jquery。长话短说,不管什么原因,它都不起作用(你可以阅读我发布的其他问题)。

或者,如果这是不可能的,是否有另一种方法可以在IE浏览器中不使用此代码,也许是php解决方案。

<?php 
    if( !is_admin()){
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js', false, '1.5.2', true);
        wp_enqueue_script('jquery');
    }
?>

目标一切除了IE(什么我试图使用,但它没有工作):

<!--[if !IE]><!-->
<!--<![endif]-->

Wordpress中有全局的$is_IE

No。作为一种替代解决方案,您可能希望在PHP块中检测浏览器。比如:

$browser = get_browser();
if ($browser->browser == 'MSIE') {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js', false, '1.5.2', true);
        wp_enqueue_script('jquery');
    }
}

或者像Nikolay Yordanov的回答那样使用$is_IE全局变量:

if ($is_IE) {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js', false, '1.5.2', true);
        wp_enqueue_script('jquery');
    }
}

简短的回答:no.

长回答:IE条件注释是客户端,而PHP是服务器端,所以它不会工作。

可能的解决方案:http://php.net/manual/en/function.get-browser.php(或者根据已经发布的答案之一,wordpress提供了一个$is_IE全局)