<script>
HTMLヘッダーとして追加するタグをユーザーが指定できるReactアプリがあります。これらはドキュメントの読み込み後にフェッチされ、プレーンテキストのプロパティとして保存されます(<script src="//some-location...
ファイルではなく文字列であるため、ポイントすることはできません)。私はいくつかのことを試しましたが、何も機能していません。
let json = loadDataFromServer();
console.log(json.headerHTML); // prints <script type="text/javascript">alert("Header script working");</script>
// This just appends it as a string to the header.
document.getElementsByTagName("head")[0].append(json.headerHTML);
// This appends the script tags properly, but doesn't run the script.
document.head.innerHTML = document.head.innerHTML + json.headerHTML;
これはReactアプリの一部であることに言及する価値があるかもしれませんが、私が知る限りdangerouslySetInnerHTML()
、ヘッダーでは使用できず、本文のHTMLのみを使用できます。
react-helmet
これを達成するのに役立つかもしれません。script
以下に示すように、サーバーの応答から開始タグと終了タグを取り除き、ヘッダーコンテンツを連結できます。
import {Helmet) from 'react-helmet'
...
return (
<>
<Helmet>
{json.headerHTML ? (
<script>
{`
${json.headerHTML}
`}
</script>
) : null}
</Helmet>
...
</>
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加