2013-09-24 6 views
25

hinzufügen Ich möchte <meta http-equiv="X-UA-Compatible" content="IE=edge"> für eine bestimmte Seite hinzufügen.Wie Meta-Tag in Javascript

Aber meine Seiten sind in einem HTML Tag gerendert. Nur der Inhalt ändert sich beim Klicken auf verschiedene Vorlagen. So kann ich den <meta> in <HEAD> Abschnitt nicht hinzufügen.

Gibt es eine Möglichkeit, die <meta http-equiv="X-UA-Compatible" content="IE=edge"> mit javascript hinzuzufügen?

+0

Sie nicht Meta-Tags mit JavaScript tun können. Sie können das Tag zur Vorlage hinzufügen oder die Kopfzeile vom HTTP-Server aus festlegen. – Pointy

+0

Ich glaube, das hier beantwortet wurde: http://stackoverflow.com/questions/7063863/adding-a-meta-tag-via-jquery –

+0

@Dontfeedthecode ich bezweifle ernsthaft, dass diese Antwort tatsächlich funktioniert. – Pointy

Antwort

33

Sie können es hinzufügen:

var meta = document.createElement('meta'); 
meta.httpEquiv = "X-UA-Compatible"; 
meta.content = "IE=edge"; 
document.getElementsByTagName('head')[0].appendChild(meta); 

... aber ich wäre nicht überrascht, wenn sie von der Zeit, die bereits lief, hatte der Browser seine Entscheidungen darüber getroffen, wie die Seite zu machen.

Die wirkliche Antwort hier muss sein, das korrekte Tag vom Server überhaupt auszugeben, oder (natürlich) überhaupt nicht auf X-UA-Kompatibel zu antworten.

+3

Ich kann bestätigen, dass das Hinzufügen des Meta-Tags dynamisch nicht in IE8 funktioniert. – plalx

+0

Ich konnte * Quirks * anstelle von * IE 7 Standards * erzwingen, indem ich den gesamten Dokumentinhalt mit 'document.write' ersetzt habe. Vielleicht gibt es eine Möglichkeit, ein neues Dokumentobjekt in IE8 zu erstellen und das aktuelle Dokument durch das neue Dokument zu ersetzen, was hoffentlich eine Neubewertung des Dokumentmodus auslösen wird. Die Funktion 'createDocument' ist in IE8 nicht verfügbar, aber ich denke, wir könnten uns auf einen' iframe' verlassen, um eine neue Dokumenteninstanz zu erstellen. – plalx

+0

IE saugt.No Verwendung von dies in IE, weil, sobald Seite Rendering gestartet wird n Sache ist angegeben, oder es gibt einen Konflikt IE zugunsten der tote Mann, IE7. – sampopes

3

Gefällt mir?

<script> 
var meta = document.createElement('meta'); 
meta.setAttribute('http-equiv', 'X-UA-Compatible'); 
meta.setAttribute('content', 'IE=Edge'); 
document.getElementsByTagName('head')[0].appendChild(meta); 
</script> 
+1

Sie brauchen hierfür 'setAttribute' nicht, sowohl' httpEquiv' als auch 'content' sind [reflektiert] (http://www.w3.org/TR/html5/document-metadata.html#the-meta-element)). –

+0

Sorry Paul Rad, es funktioniert nicht. –

13

$('head').append('<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> ');

oder

var meta = document.createElement('meta'); 
meta.httpEquiv = "X-UA-Compatible"; 
meta.content = "IE=edge"; 
document.getElementsByTagName('head')[0].appendChild(meta); 

Obwohl ich nicht sicher bin, wird es haben einen Einfluss, wie es erzeugt wird, nachdem die Seite

geladen Wenn Sie möchten, Um Metadaten-Tags für die Seitenbeschreibung hinzuzufügen, verwenden Sie die EINSTELLUNGEN Ihrer DNN-Seite, um Beschreibung hinzuzufügen d Schlüsselwörter. Beyond dass, der beste Weg zu gehen, wenn Sie den HEAD ändern, ist, dynamisch Ihren Code in den HEAD über ein Drittanbieter-Modul zu injizieren.

bei http://www.dotnetnuke.com/Resources/Forums/forumid/7/threadid/298385/scope/posts.aspx

gefunden Dieser andere Meta-Tags erlauben kann, wenn man Glück hat

Zusätzliche HEAD-Tags in Seiteneinstellungen gesetzt werden können sind> Erweiterte Einstellungen> Seite Header-Tags.

bei http://www.dotnetnuke.com/Resources/Forums/forumid/-1/postid/223250/scope/posts.aspx gefunden

+0

Yussuf, ich habe beide die Lösung versucht, die Sie gegeben haben, aber diese funktionieren nicht. –