2013-09-24 18 views
25

voglio aggiungere <meta http-equiv="X-UA-Compatible" content="IE=edge"> per una determinata pagina.Come aggiungere meta tag in javascript

Ma le mie pagine sono resi all'interno di una HTML tag. Solo il contenuto sta cambiando facendo clic su diversi modelli. Quindi non posso aggiungere la sezione <meta> nella sezione <HEAD>.

C'è un modo per aggiungere <meta http-equiv="X-UA-Compatible" content="IE=edge"> utilizzando javascript?

+0

Non si può fare meta tag con JavaScript. È possibile aggiungere il tag al modello o impostare l'intestazione dal server HTTP. – Pointy

+0

Credo che questo è stato risposto qui: http://stackoverflow.com/questions/7063863/adding-a-meta-tag-via-jquery –

+0

@Dontfeedthecode Dubito seriamente che quella risposta funziona realmente. – Pointy

risposta

33

è possibile aggiungerlo:

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

... ma non sarei sorpreso se per il momento che correva, il browser ha già fatto le sue decisioni su come il rendering della pagina.

La vera risposta deve essere quella di emettere il tag corretto dal server in primo luogo, o (ovviamente) di non rispondere affatto su X-UA-Compatible.

+3

Posso confermare che l'aggiunta del metatag in modo dinamico non funziona in IE8. – plalx

+0

Sono stato in grado di forzare Quirks * * * al posto di IE 7 Standard * sostituendo il contenuto intero documento usando 'document.write'. Forse c'è un modo per creare un nuovo oggetto documento in IE8 e sostituire il documento corrente con quello nuovo, che si spera inneschi una rivalutazione della modalità documento. La funzione 'createDocument' non è disponibile in IE8, ma suppongo che potremmo fare affidamento su un iframe per creare una nuova istanza di documento. – plalx

+0

IE fa schifo.Non uso di questo in IE perché non appena viene avviato il rendering della pagina n cosa è specificato o c'è un conflitto IE prendere una posizione a favore del morto, cioè IE7. – sampopes

3

Ti piace?

<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

Per questo non è necessario 'setAttribute', sia 'httpEquiv' che' content' sono [riflessi] (http://www.w3.org/TR/html5/document-metadata.html#the-meta-element). –

+0

Mi dispiace Paul Rad, non funziona. –

13

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

o

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

Anche se non sono certo che avrà un effetto in quanto verrà generato dopo che la pagina viene caricata

Se si desidera per aggiungere tag meta dati per la descrizione della pagina, utilizzare i impostazioni della tua pagina DNN per aggiungere un Descrizione d Parole chiave. Al di là di che, il modo migliore per andare quando si modifica la testa è al dinamicamente iniettare il codice nella testa tramite un modulo di terze parti.

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

Questo potrebbe permettere ad altri meta tag, se siete fortunati

Ulteriori tag HEAD possono essere posizionati in Impostazioni pagina> Avanzate Impostazioni> Pagina dei tag di intestazione.

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

+0

Yussuf, ho provato sia la soluzione che hai dato, ma questi non funzionano. –