通过脚本标记加载外部JavaScript

时间:2016-03-07 21:52:08

标签: reactjs

我正在尝试使用脚本标记动态加载脚本。但我无法做到。

我的渲染方法如下

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中。我无法控制脚本。它来自第三方。

3 个答案:

答案 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>
}