Как динамически обновлять мета-теги (OG) с помощью JavaScript

#javascript #metadata #facebook-opengraph #meta

#javascript #метаданные #facebook-opengraph #мета

Вопрос:

Это мой первый вопрос здесь, в сообществе Stack. Я знаю, что об этом спрашивали ранее, но я хотел знать, как это сделать конкретно, просто используя JS (я не программист по образованию).

Это то, что я пытаюсь сделать:

 var pageTitle = document.getElementsByTagName('h1');
document.getElementById("demo").innerHTML = pageTitle[0].innerHTML; 
 <html>
<head>
<title>Update meta tag dynamically</title>
<meta property="og:title" content="id=demo"/>
</head>
    <body>
        <h1>First header</h1>
    </body>
</html> 

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

PS: Мы не можем ничего запускать на серверной части, поэтому это должно быть в коде.

Это что-то еще, что я нашел, но это тоже не работает:

 <meta name="description" content="Old">
<h1>New</h1>
<script type='text/javascript'>
$(document).ready(function() {
    var metaTitle = document.getElementsByTagName('h1');
    // Just replacing the value of the 'content' attribute will not work.
    $('meta[name=description]').remove();
    $('head').append( '<meta name="description" content"$metaTitle">' );
});
</script> 
 

Комментарии:

1. Из вашего вопроса неясно, чего вы хотите достичь. Пожалуйста, добавьте некоторые подробности о конкретной проблеме, с которой вы столкнулись.

2. Хорошо, в основном у нас есть несколько руководств по документации (около 1700 html-страниц), которые мы создаем с помощью редактора WYSIWYG (MadCap Flare). Редактору требуется только одна HTML-страница в базовом стиле, и он применяет код к остальным страницам при создании руководства. В настоящее время у нас есть общие мета-теги для этой базовой страницы, поэтому все страницы имеют одинаковые мета-теги, что бесполезно. Я хочу, чтобы они обновлялись динамически с использованием содержимого страницы. Приведенный выше код предназначен для обновления заголовка мета-тега OG с использованием H1.

3. вы пытались $(‘head’).append(‘<meta property=»og:title» content=»id=demo»/>’)

4. Извините, но не сработало.

Ответ №1:

Наконец, взломан код. Вот это для любых будущих путешественников: https://github.com/idaljot/meta-tag-auto-update/blob/master/meta-tag.htm