【发布时间】:2020-08-18 17:08:55
【问题描述】:
我正在尝试将 Trustpilot 小部件添加到我的 Gatsby.js 网站。要使 Widget 样式生效,需要从 Trustpilot CDN 加载外部脚本。
<script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
我尝试了多种方法将此脚本添加到我的页脚组件中。我尝试的第一件事是 React Helmet。我使用以下代码添加:
<Helmet>
<script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
</Helmet>
当我最初加载页面时,脚本似乎已加载并且样式有效。一旦我导航到不同的页面,样式就会消失。当我重新加载时,它又回来了。
然后我尝试在 componentDidMount() 中添加脚本
componentDidMount() {
var addScript = document.createElement('script');
addScript.setAttribute('src', '//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js');
document.body.appendChild(addScript);
}
但即使这样也会产生相同的结果。
这里发生了什么?外部 js 脚本会消失吗?如何正确加载它以使其保持不变?
【问题讨论】:
标签: javascript reactjs gatsby react-helmet