2013-09-24 2 views
25

Я хочу добавить <meta http-equiv="X-UA-Compatible" content="IE=edge"> для конкретной страницы.Как добавить метатег в javascript

Но мои страницы отображаются внутри одного тега HTML. Изменяется только контент при нажатии разных шаблонов. Поэтому я не могу добавить <meta> в раздел <HEAD>.

Можно ли добавить <meta http-equiv="X-UA-Compatible" content="IE=edge"> с помощью javascript?

+0

Вы не можете сделать мета-теги с JavaScript. Вы можете добавить тег к шаблону или задать заголовок с HTTP-сервера. – Pointy

+0

Я считаю, что это был дан ответ здесь: http://stackoverflow.com/questions/7063863/adding-a-meta-tag-via-jquery –

+0

@Dontfeedthecode Я серьезно сомневаюсь, что это ответ на самом деле работает. – Pointy

ответ

33

Вы можете добавить его:

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

... но я не удивлюсь, если к тому времени, побежал, браузер уже сделал свои решения о том, как отобразить страницу.

Настоящий ответ должен состоять в том, чтобы вывести правильный тег с сервера в первую очередь или (конечно) не отвечать на X-UA-Compatible вообще.

+3

Я могу подтвердить, что динамическое добавление метатега не работает в IE8. – plalx

+0

Я смог заставить * Quirks * вместо * IE 7 Standards * заменить весь контент документа с помощью 'document.write'. Возможно, есть способ создать новый объект документа в IE8 и заменить текущий документ на новый, который, надеюсь, вызовет переоценку режима документа. Функция 'createDocument' не доступна в IE8, но я думаю, что мы могли бы полагаться на' iframe' для создания нового экземпляра документа. – plalx

+0

IE sucks.No использование этого в IE, потому что, как только начинается рендеринг страницы, указано что-то или есть конфликт IE занять позицию в пользу мертвого человека, то есть IE7. – sampopes

3

Нравится?

<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

Для этого вам не нужно 'setAttribute', и' httpEquiv', и 'content' [отражены] (http://www.w3.org/TR/html5/document-metadata.html#the-meta-element). –

+0

Извините, Пол Рад, он не работает. –

13

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

или

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

Хотя я не уверен, что это будет иметь влияние, как он будет сгенерирован после загрузки страницы

Если вы хотите для добавления тегов метаданных для описания страницы, используйте настройки вашей DNN-страницы, чтобы добавить описание an d Ключевые слова. Помимо , лучший способ пойти при изменении HEAD - динамически ввести свой код в HEAD через сторонний модуль.

Найдено в http://www.dotnetnuke.com/Resources/Forums/forumid/7/threadid/298385/scope/posts.aspx

Это может позволить другие мета-теги, если вы счастливчики

Дополнительные теги ГОЛОВЫ могут быть помещены в Page Настройки> Дополнительно Настройки> Заголовок страницы Метки.

Найдено в http://www.dotnetnuke.com/Resources/Forums/forumid/-1/postid/223250/scope/posts.aspx

+0

Yussuf, я пробовал оба решения, которые вы дали, но они не работают. –

Смежные вопросы