2015-09-13 16 views
0

我想添加IE8支持到我的網站,但我的網站使用IE8不支持的jQuery v.2。所以我想爲IE8用戶加載jquery v.1,但這不起作用,任何人都可以在我的代碼中看到錯誤?爲IE和v.2加載現代瀏覽器在wordpress functions.php

當我訪問IE8的網站時,我收到了數百個錯誤,因爲它只加載v.2 ...。另一方面safari不加載v.1,所以只有IE在這裏有問題。

echo '<!--[if lt IE 9]>'; 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', get_stylesheet_directory_uri() . "/_plugins/jquery/jquery-1.11.3.min.js", false, false, false); 
     wp_enqueue_script('jquery'); 
    echo '<![endif]-->'; 
    echo '<!--[if gte IE 9]><!-->'; 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', get_stylesheet_directory_uri() . "/_plugins/jquery/jquery-2.1.4.min.js", false, false, false); 
     wp_enqueue_script('jquery'); 
    echo '<!--<![endif]-->'; 
+0

您可以複製並粘貼您收到的錯誤嗎? –

+0

此外,請註釋掉該代碼,並將其複製並粘貼到header.php中,並讓我知道如果錯誤仍然存​​在:https://gist.github.com/pjhampton/5af7f38a8b13787ee377 –

+0

我認爲您會遇到困難編寫將支持兩者的jQuery代碼。如果您需要傳統瀏覽器支持,請使用舊版本的jQuery。這就是說你遇到問題的原因是你試圖使用入隊腳本的方式。它不會顯示在你的IE標籤內。 –

回答

0

如果你看一下生成的腳本,你只會發現這一點:

<!--[if lt IE 9]> 
<![endif]--> 
<!--[if gte IE 9]><!--> 
<!--<![endif]--> 

的腳本代碼進行了註冊,腳本標記加載腳本後寫的。 (如果腳本標籤寫向右走,那麼就不可能註銷腳本。)

this question適應的方法,你應該能夠用它來換行寫腳本標籤:

wp_register_script('jquery1', get_stylesheet_directory_uri() . "/_plugins/jquery/jquery-1.11.3.min.js", false, false, false); 
wp_register_script('jquery2', get_stylesheet_directory_uri() . "/_plugins/jquery/jquery-2.1.4.min.js", false, false, false); 

add_filter('script_loader_tag', function($tag, $handle) { 
    if ($handle === 'jquery1') { 
    $tag = "<!--[if lt IE 9]>$tag<![endif]-->"; 
    } 
    if ($handle === 'jquery2') { 
    $tag = "<!--[if gte IE 9]><!-->$tag<!--<![endif]-->"; 
    } 
    return $tag; 
}, 10, 2); 
+0

對不起,我認爲它的工作原理,但現在我看到你的腳本在現代瀏覽器+ IE上加載v.1。 –

+0

@HenningFischer:條件註釋是否在頁面中結束? – Guffa

相關問題