我正在尝试使用脚本标记动态加载脚本。但我无法做到。
我的渲染方法如下
render() {
<div>
<script type="text/javascript" language="javascript" src="//verify.authorize.net/anetseal/seal.js" ></script>
<a href="http://www.authorize.net/" id="AuthorizeNetText" target="_blank">Working. Yipee</a>
</div>
}
我尝试使用dangerouslySetInnerHtml,但这也无效。
我需要这个,因为,提到的脚本使用document.writeln。所以我希望它显示在当前的div中。我无法控制脚本。它来自第三方。
答案 0 :(得分:12)
我相信你可以更加具体地说明加载脚本后应该做些什么。这样的事情应该适合你:
componentDidMount() {
var aScript = document.createElement('script');
aScript.type = 'text/javascript';
aScript.src = " /*URL Goes Here*/ ";
document.head.appendChild(aScript);
aScript.onload = function() {
document.getElementById(" /*DIV NAME*/ ").InnerHTML = /*YOUR CODE*/;
};
}
答案 1 :(得分:5)
您可以将script
标记附加到您的身体,如下所示:
componentDidMount() {
var addScript = document.createElement('script');
addScript.setAttribute('src', '//verify.authorize.net/anetseal/seal.js');
document.body.appendChild(addScript);
}
render() {
return (
<div>
<a href="http://www.authorize.net/" id="AuthorizeNetText" target="_blank">Working. Yipee</a>
</div>
);
}
答案 2 :(得分:3)
您可以尝试使用头盔https://github.com/nfl/react-helmet
render() {
<div>
<Helmet>
<script type="text/javascript" language="javascript" src="//verify.authorize.net/anetseal/seal.js" />
<Helmet>
<a href="http://www.authorize.net/" id="AuthorizeNetText" target="_blank">Working. Yipee</a>
</div>
}