2010-12-27 6 views
0

Ich habe eine iPhone Web-Anwendung, die dynamisch einen „Meta-Darstellungsfeld“ Tag erzeugt, mit Javascript, abhängig von bestimmten Benutzern konfigurierten Einstellungen.Meta Ansichtsfenster-Tag in noscript Block

Ich möchte ein Standard Meta Viewport-Tag zur Verfügung stellen, für den Fall, dass Javascript deaktiviert ist, aber keinen geeigneten Weg finden kann, es zu tun.

ich das versucht:

<noscript> 
<meta name="viewport" content="initial-scale=1.0"> 
</noscript> 

Und es funktioniert, es scheint jedoch nicht gültig zu sein, wie noscript offenbar im HEAD-Bereich eines HTML-Dokuments nicht erlaubt ist (ich sah auch bei this question)

Irgendwelche Alternativen?

Edit:

Ich habe bereits versucht, einen Standard-Meta-Darstellungsfeld-Tag habe, dann Entfernen (oder Ersatz) mit Javascript. Dieses "fast" funktioniert: Sie können tatsächlich ein vorhandenes Viewport-Meta-Tag mit Javascript ändern (die Technik ist gut beschrieben here). Es gibt jedoch einige Einschränkungen: Während Sie den Wert einer bestimmten Eigenschaft ändern können, können Sie das Gerät NICHT dazu veranlassen, eine Eigenschaft, die bereits definiert wurde, zu "vergessen" (auf den Standardwert zurückzusetzen). Auch das Entfernen des Meta-Tags mit Javascript funktioniert nicht.

Antwort

3

Tricky.

Haben Sie

versucht
<meta name="viewport" content="initial-scale=1.0"> 

<script> 
document.write('<meta name="viewport" content="initial-scale=2.0">'); 
</script> 

? (2.0 ist die Skala als Sie einstellen wollen, wenn Scripting aktiviert ist)

Ich kann keine verbindliche Informationen finden, ob dies legal ist, aber es scheint, in HTML zu sein. Die Frage ist, ob es richtig geparst wird.

Other than that, kann ich nur zwei Alternativen denken:

  • Detecting Javascript-Unterstützung auf Server-Seite, und dazu dient, zwei verschiedene Seiten, eine mit, eine ohne den Meta-Tag

  • Immer Einbetten des Viewport-Tags und Entfernen von mit Javascript - ich habe keine Ahnung, ob das funktioniert, obwohl.

+0

@Pekka: Ich habe versucht, tatsächlich den zweiten Ansatz vor, auch von noscript denken. Wenn jedoch ein Standard-Meta-Darstellungsfeld-Tag enthalten ist, und dann entfernt/geändert/ersetzt mit Javascript, das iPhone immer noch die ursprünglichen Meta Ansichtsfenster Definition verwenden :-( – Grodriguez

+0

@Pekka: Wie kann ich erkennen, ob Javascript auf der Serverseite aktiviert ist? – Grodriguez

+0

@Grodriguez welche Server-Seite Sprache (n) können Sie verwenden –