2012-01-10 72 views
1

我正在構建一個響應iPhones的網站。爲了讓畫面縮放到我使用的meta標籤屏幕比例:如何允許在iPad上縮放頁面但不是iPhone

meta name="viewport" content="width=device-width; initial-scale=1.0; 
maximum-scale=1.0;" 

缺點是,這種標籤還可以防止從臺iPad放大和縮小,是有辦法,我可以允許縮放在iPad上但不是在iPhone上?

+0

什麼是您的服務器端語言? – 2012-11-15 10:53:05

回答

2

您不能使用某種服務器端語言(PHP,ASP等)來檢測瀏覽器用戶代理是什麼嗎? iPhone和iPad有兩個不同的用戶代理字符串。只有當您檢測到用戶代理是iPhone時,纔會設置元標記。

典型的用戶代理字符串可以通過搜索「iphone用戶代理字符串」和「ipad用戶代理字符串」找到。

+0

這是一種可能性,但希望找到適用於任何可以讀取元標記的設備的解決方案。 – RexT 2012-01-10 10:34:45

+0

不確定我看到您的問題與此解決方案有關。如果您正在執行用戶代理檢測服務器端,它將適用於任何設備。 – Chaser324 2012-01-17 11:27:50

0

既然是你指的是,你不能真正控制只從前端側變焦的行爲在同一頁..

您可以使用2層獨立的JSP這將對相關的meta標籤編碼,然後包括他們動態地基於該請求是從通過用戶代理字符串來..

同樣,你肯定貴方覺得必須使用某種形式的服務器端技術來實現uou想要什麼......

+0

單獨的頁面確實不理想。沒有理由不能在他的模板中應用某些if/else邏輯。 – 2012-11-15 10:52:14

3

我同意您最好在服務器端 的PHP

<?php 
    // we only give the viewport if it is not an iPad: 
    if(!(bool) stripos($_SERVER['HTTP_USER_AGENT'],'ipad')) { ?> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> 
<?php } ?> 

但是你也可以用Javascript做到這一點,如果你覺得需要(但又不知道爲什麼?因爲它不可靠! )

if (navigator.userAgent.match(/iPad/i) != null) { } else { 
document.write('[meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; " /]'); 
} 

替換[用< ...因爲我不知道爲什麼標籤在StackOveflow編輯轉義。

相關問題