Может ли React Helmet добавить объект javascript в тег <HEAD>?
У меня есть вопрос, мне нужно вставить в тег HEAD объект javascript, для целей управления тегами. Это мой компонент Helmet, но он принимает только определенные параметры, которые должны быть установлены на стороне метаданных с помощью функции rewind().
Есть ли еще способ использовать React Helmet, чтобы делать то, что мне нужно, поэтому создавать объекты javascritpt в теге SCRIPT или мне следует использовать другой подход?
MyComponent.js
<Helmet
title={article.get('title')}
meta={[
{"property": "og:title", "content": article.get('title')},
{"property": "og:url", "content": article.get('url')},
{"property": "twitter:title", "content": article.get('title')}
]}
/>
server.js
let htmlHead = `
${head.title}
${head.meta.toString()}
`;
Спасибо за поддержку
4 ответа
Существующие ответы устарели. Вам не нужно искажать код с помощьюscript
атрибуты или innerHTML
. Вы можете использовать<script>
как обычно в HTML:
<Helmet>
<script src="https://some.host/api.js" type="text/javascript" />
</Helmet>
Мне нужно вставить в тег HEAD объект JavaScript
Вы можете определить объект во встроенном скрипте, используя innerHTML
атрибут на шлем script
prop - этот атрибут был представлен в шлеме 3.0.0
<Helmet
script={[{
type: 'text/javascript',
innerHTML: 'window.yourObject = { it: "works" }'
}]} />
Если я правильно понял ваш вопрос, в вашем <Helmet/>
декларацию, вы можете добавить в script
свойство вводить <script>
тег в заголовок HTML ваших страниц.
<Helmet
title={article.get('title')}
meta={[
{"property": "og:title", "content": article.get('title')},
{"property": "og:url", "content": article.get('url')},
{"property": "twitter:title", "content": article.get('title')}
]}
script={[
{"src": "http://url.com/script.js", "type": "text/javascript"}
]}
/>
Просто добавьте тег script следующим образом:
<Helmet>
<script type="text/javascript">
{`console.log("Hello World");window.secret = "Tss..."`}
</script>
</Helmet>