Действительно ли возможно использовать JavaScript для изменения метатегов страницы?

Если я поместил отделение в голову и display:none, чем использование JavaScript для отображения его, это будет работать?

Править:

У меня есть материал, загруженный в Ajax. И поскольку мой Ajax изменяет "основную" часть сайта, я хочу изменить метатеги также.

93
задан Brett DeWoody 23 July 2017 в 16:20
поделиться

5 ответов

Да, вы можете это сделать.

Есть несколько интересных вариантов использования: Некоторые браузеры и плагины анализируют метаэлементы и меняют свое поведение на разные значения.

Примеры

Skype: Отключить парсер телефонных номеров

<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE">

iPhone: Отключить парсер телефонных номеров

<meta name="format-detection" content="telephone=no">

Google Chrome Frame

<meta http-equiv="X-UA-Compatible" content="chrome=1">

Определение области просмотра для мобильных устройств

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Это можно изменить с помощью JavaScript. См .: Исправление ошибки масштабирования области просмотра iPhone

Метаописание

Некоторые пользовательские агенты (например, Opera) используют описание для закладок. Здесь вы можете добавить персонализированный контент. Пример:

<!DOCTYPE html>
<title>Test</title>
<meta name="description" content="this is old">
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.js'></script>

<button>Change description</button>

<script type='text/javascript'>
$('button').on('click', function() {
    // Just replacing the value of the 'content' attribute will not work.
    $('meta[name=description]').remove();
    $('head').append( '<meta name="description" content="this is new">' );
});
</script>

Итак, дело не только в поисковых системах.

157
ответ дан 24 November 2019 в 06:09
поделиться

Нет, div - это элемент тела, а не элемент заголовка

РЕДАКТИРОВАТЬ: Тогда единственное, что получат SE, - это базовый HTML, а не модифицированный ajax.

1
ответ дан 24 November 2019 в 06:09
поделиться

Вы бы использовали что-то вроде (с jQuery):

$('meta[name=author]').attr('content', 'New Author Name');

Но в большинстве случаев это было бы бессмысленно, поскольку метатеги обычно очищаются только при загрузке документа, обычно без выполнения какого-либо JavaScript.

66
ответ дан 24 November 2019 в 06:09
поделиться

мета-теги являются частью dom, и к ним можно получить доступ и -i guess- изменить, но поисковые системы (основные потребители метатегов) не увидит изменения, поскольку javascript не будет выполнен. так что, если вы не меняете метатег (на ум приходит обновление), который влияет на браузер, от этого может быть мало толку?

11
ответ дан 24 November 2019 в 06:09
поделиться

Это должно быть возможно вот так (или используйте jQuery, например $ ('meta [name = author]'). Attr ("content") ; ):

<html>
<head>
<title>Meta Data</title>
<meta name="Author" content="Martin Webb">
<meta name="Author" content="A.N. Other">
<meta name="Description" content="A sample html file for extracting meta data">
<meta name="Keywords" content="JavaScript, DOM, W3C">

</head>

<body>
<script language="JavaScript"><!--
if (document.getElementsByName) {
  var metaArray = document.getElementsByName('Author');
  for (var i=0; i<metaArray.length; i++) {
    document.write(metaArray[i].content + '<br>');
  }

  var metaArray = document.getElementsByName('Description');
  for (var i=0; i<metaArray.length; i++) {
    document.write(metaArray[i].content + '<br>');
  }

  var metaArray = document.getElementsByName('Keywords');
  for (var i=0; i<metaArray.length; i++) {
    document.write(metaArray[i].content + '<br>');
  }
}
//--></script>
</body>

</html>
11
ответ дан 24 November 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: