2010-11-24 7 views

Antwort

0

Ich endete tatsächlich mit einer etwas anderen und sehr lächerlichen Lösung, die Medienabfragen und getComputedStyle verwendet, um auf eine mobile Website umleiten, wenn wir auf einem iPhone-ähnlichen Gerät sind.

<style media="only screen and (max-device-width: 480px)">html{border-top-style:dashed;}</style> 

<script> 
if(window.location.search.indexOf("?m=t")==-1 && window.getComputedStyle) { 
    var mobile = false; 

    if(window.getComputedStyle(document.getElementsByTagName("html")[0],null).getPropertyValue("border-top-style")=="dashed") { 
     var mobile = true; 
    } 

    if(mobile) { 
     window.location.replace(window.location+"?m=t"); 
    } 
} 
</script> 

Ich bin sicher, ich habe die getComputedStyle Idee auf Stack-Überlauf, aber ich kann mich nicht erinnern, wo.

1

Sie können immer noch die bedingte Überprüfung durchführen, für iPhones hängen Sie das iPhone CSS an, sonst Ihr normales CSS.

var agent=navigator.userAgent.toLowerCase(); 
var isIPhone = ((agent.indexOf('iphone')!=-1); 

if (isIPhone) 
    document.createElement("style")... //iPhone CSS 
else 
    document.createElement("style")... //normal CSS 
+0

Sicher, obwohl das bedeutet, dass Sie JavaScript verwenden, um Stylesheets in jedem Browser anzuwenden. –

+3

Sie können diese Serverseite auch verwenden, wenn es sich nicht nur um eine HTML-Seite handelt, indem Sie http_user_agent überprüfen. –

0

Oder eine einfache Umleitung auf einer Seite ohne CSS, oder die Verwendung von PHP iPhones zu erkennen und ihnen eine Seite ohne Stil liefern - etwas mit einem Fluss von:

if iPhone { 
    echo //page without CSS 
else { 
    echo //page with CSS 
} 
2

Sie könnten möglicherweise verwenden @media queries:

<link rel="stylesheet" href="noniPhoneStylesheet1.css" media="only screen and (min-device-width:490px)" /> 

Welche iPhone-Browser automatisch aus dem Download, dass bestimmte Sheet (die iPhone-Bildschirmbreite sein 480px) ausschließen würde; Daher sollten alle Stile, die Sie vor dem iPhone verbergen möchten, in das Stylesheet übernommen werden. Natürlich blockiert es auch das Stylesheet von anderen Geräten, die Medienabfragen berücksichtigen und eine Bildschirmbreite von weniger als 490 Pixeln haben.

+0

Ich werde es versuchen. –

+0

Und ... hier hofft es wirklich funktioniert ... = 0 (Ich habe es nicht versucht, scheint nur wie * sollte * ...) –

+0

@Paul, kein Glück mit diesem oder Feedback? –