2013-09-24 12 views
25

Chcę dodać <meta http-equiv="X-UA-Compatible" content="IE=edge"> dla konkretnej strony.Jak dodać metatag w javascript

Ale moje strony są renderowane wewnątrz jednego znacznika HTML. Tylko zawartość zmienia się po kliknięciu różnych szablonów. Nie mogę więc dodać sekcji <meta> w w sekcji .

Czy istnieje sposób na dodanie <meta http-equiv="X-UA-Compatible" content="IE=edge"> przy użyciu javascript?

+0

Nie można zrobić meta tagi z JavaScript. Możesz dodać tag do szablonu lub ustawić nagłówek z serwera HTTP. – Pointy

+0

wierzę zostało to tutaj odpowiedział: http://stackoverflow.com/questions/7063863/adding-a-meta-tag-via-jquery –

+0

@Dontfeedthecode poważnie wątpię, że odpowiedź faktycznie działa. – Pointy

Odpowiedz

33

Można go dodać:

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

... ale nie zdziwiłbym się, gdyby do czasu, który biegł, przeglądarka miał już swoje decyzje dotyczące sposobu renderowania strony.

Prawdziwą odpowiedzią musi być przede wszystkim wypisanie poprawnego tagu z serwera lub (oczywiście) nie udzielanie odpowiedzi na X-UA-Compatible w ogóle.

+3

Mogę potwierdzić, że dynamiczne dodawanie metatagu nie działa w IE8. – plalx

+0

Mogłem wymusić * dziwactwa * zamiast * Standardów IE 7 *, zastępując całą treść dokumentu za pomocą 'document.write'. Być może istnieje sposób na stworzenie nowego obiektu dokumentu w IE8 i zastąpienie bieżącego dokumentu tym nowym, co, miejmy nadzieję, uruchomi ponowną ocenę trybu dokumentu. Funkcja 'createDocument' nie jest dostępna w IE8, ale myślę, że możemy polegać na' iframe', aby utworzyć nową instancję dokumentu. – plalx

+0

IE zasysa.Nie używa się tego w IE, ponieważ zaraz po uruchomieniu renderowania strony n jest określona rzecz lub występuje konflikt IE przeciwstawia się trupowi, tj. IE7. – sampopes

3

Podoba Ci się to?

<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

Nie potrzebujesz do tego celu 'setAttribute', zarówno' httpEquiv' i 'content' są [odzwierciedlone] (http://www.w3.org/TR/html5/document-metadata.html#the-meta-element). –

+0

Niestety, Paul Rad, to nie działa. –

13

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

lub

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

Choć nie jestem pewien to będzie mieć wpływ, jak to będzie generowany po załadowaniu strony

Jeśli chcesz aby dodać znaczniki meta-danych do opisu strony, użyj USTAWIEŃ strony DNN, aby dodać Opis i d Słowa kluczowe. Beyond , że najlepszym sposobem, aby przejść podczas modyfikowania HEAD jest dynamiczne wstrzyknąć swój kod do HEAD za pośrednictwem modułu strony trzeciej.

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

Może to pozwolić innych metatagów, jeśli masz szczęście

Dodatkowe tagi głowy może być umieszczony na stronie Ustawienia> Zaawansowane Ustawienia> Nagłówek strony Znaczniki.

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

+0

Yussuf, Próbowałem zarówno rozwiązania, które podałeś, ale te nie działają. –

Powiązane problemy