2011-11-25 61 views
1

有什麼辦法可以刪除<head>,將它放在一個.php文件中,然後在它的位置使用javascript if語句根據屏幕分辨率調用某個頭部?在JavaScript if語句中調用一個.php文件

現在我知道如何做顯而易見的if語句,並且我已經閱讀了JavaScript中由於客戶端與服務器端調用php的複雜性,但是在源代碼中我可以看到腳本出現,但不起作用。

任何想法?

+6

這不是這樣做的。根據屏幕分辨率的不同,您需要更改的「頭部」內容是什麼? –

+0

主要樣式表。我之前做過一個不同的方式,但是當將不同的樣式表應用於7個以上的設備時會有點混亂。其中一些人不想在使用媒體=「屏幕時玩球...... –

+1

頭部應該總是顯而易見的,你的解決方案沒有任何意義,也許你想解釋你的初始問題 – pimvdb

回答

1

從您的評論,你說你要在頭改變了什麼是「主要的樣式表」,我認爲,要應用取決於屏幕分辨率不同的樣式表和/或一些其他條件。你可以做,但不是你描述的方式。試着像下面代替:

<html> 
<head> 
<script> 
if (whateveryourconditionis) { 
    document.write('<link rel="stylesheet" href="sheet1.css" type="text/css">'); 
} else (someothercondition) { 
    document.write('<link rel="stylesheet" href="sheet2.css" type="text/css">'); 
    document.write('<link rel="stylesheet" href="sheet3.css" type="text/css">'); 
} else { 
    document.write('<link rel="stylesheet" href="default.css" type="text/css">'); 
} 
</script> 
</head> 
<body> 
</body> 
</html> 

通常我不會建議document.write(),但對於這種目的而頁面仍在加載它是完美的罰款,並比其它更簡單。如果你願意,你可以使用document.createElement();,然後設置適當的屬性並將其附加到<head>,但我不會打擾,除非你想在頁面加載後更改樣式表。

你也可以使用條件加載器庫,如YepNope.js(不要擔心它強調加載JS文件,它也會做CSS)。

0

相反,您可以嘗試使用在頭部加載後調用的JavaScript修改頭部。 javascript在加載頁面之後或加載頁面時在瀏覽器上運行,因此顯然頭部總是會先出現。但是你總是可以使用不同頭部的javascript加載另一個頁面。

所以你都可以page.php文件?類型= 1

和你的JavaScript將根據與不同的typeid任何邏輯重裝page.php文件加載和。

page.php將有一個if else塊,它將向瀏覽器打印不同的頭。

希望這有助於...

+0

那麼頁面加載,然後它重新定向或頁面加載之前頭會改變? –

+0

是的,頁面將不得不加載一次你做檢查的地方,否則你的腳本不會運行。但是重定向將工作得足夠快。你可以嵌入JavaScript調用,所以你不需要它被觸發。例如 function test(){} test();這將在頁面加載時調用測試,並且您可能在其中有重定向 –

0

要調用PHP腳本,請查找一些Ajax調用。例如下面的代碼:

<script type="text/javascript"> 
function _CallPHP() { 
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      alert("PHP has been executed"); 
     } 
    } 

    xmlhttp.open("GET","/phpscript.php",true); 
    xmlhttp.send(); 
} 
</script> 
+0

這是我一直在研究的內容,如果Sid的解析無效,可能必須嘗試此操作。謝謝。 –