簡體   English   中英

有沒有辦法使用 <![if !(IE 8)]> 在PHP內?

[英]Is there a way to use <![if !(IE 8)]> within PHP?

對不起令人困惑的標題,我不知道如何更好地描述它。

無論如何,這是我目前用於我的網站Cufon的'問題'。 哪個效果很好。 但是,對於Internet Explorer 8,它變得非常慢。 因此我決定使用:

<![if !(IE 8)]>
<script type="text/javascript" src="js/myriad-pro.cufonfonts.js"></script>
<script type="text/javascript">Cufon.replace('.example1') ('.example2') ('.example3') ('.example4') ('.example5');
</script>
<![endif]>

這很好用,但不是一切。 腳本的某些部分,在腳本本身調用Cufon,它不起作用,Cufon仍然會在IE8中顯示(帶有所有負面結果)。

包含的幾個腳本/部件中包含以下代碼:

<?php
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
?>

現在可以在PHP腳本中創建相同的語句嗎? 因此,如果它是IE8以外的任何瀏覽器,它將加載Cufon,但如果它是IE8它將不會加載Cufon?

希望有人理解我在這里的意思,因為有點難以為我解釋...... :(

<?php
echo "<![if !(IE 8)]>";
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
echo "<![endif]>";
?>

是嗎? 或者我誤解了你的要求?

編輯:另一種方式,因為我看到你正在使用jQuery,可能正在使用jQuery瀏覽器檢測

<?php
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "if ( $.browser.msie && $.browser.version <= 8 ) {";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "}";
echo "</script>";
?>

請注意,此功能已棄用:

該物業可立即使用。 因此,使用它來確定是否調用$(document).ready()是安全的。 $ .browser屬性在jQuery 1.3中已棄用,其功能可能會在未來的jQuery版本中移動到團隊支持的插件中。

如果您確切地知道需要哪種功能並且未在IE8中實現,我建議使用$.support ,這是用於功能檢測而不是瀏覽器檢測。

是的,您可以使用HTTP_USER_AGENT

$using_ie8 = (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.') !== FALSE);

但我們知道這可以由用戶改變。

以下是IE的所有用戶代理列表

在PHP中,您可以使用get_browser()來檢測瀏覽器及其版本。

$browser = get_browser(null, true);

這應該返回一個包含瀏覽器信息的數組。

請注意,這將需要browscap設置。

基本上,您可以通過過濾訪客的USER AGENT [docs]來完成此操作。 您可以從服務器變量獲取此信息。

$ua = $_SERVER['HTTP_USER_AGENT'];

USER代理包含打開該頁面的訪客的所有必要信息。 到目前為止,我所知道的這種技術最簡單的用法是:

if (preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT'])) {
    //do something
}

只需打印條件注釋;

<?php
echo "<![if !(IE 8)]>";
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "$(document).ready(function() { Cufon.replace('.orderpart1') ('.orderpart2') ('.orderpart3'); });";
echo "</script>";
echo "<![endif]>";
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM