【问题标题】:Load external javascript through script tag通过脚本标签加载外部javascript
【发布时间】:2019-07-29 23:07:57
【问题描述】:

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

我的渲染方法如下

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

【问题讨论】:

标签: reactjs


【解决方案1】:

我相信您可以更具体地说明加载脚本后应该做什么。像这样的东西应该很适合你:

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 ID HERE*/ ").InnerHTML = /*YOUR CODE*/;
    };
}

【讨论】:

    【解决方案2】:

    您可以像这样将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>
      );
    }
    

    【讨论】:

    • 我不想附加它的正文元素。我想附加它所以 div 元素。如果我做 document.getElementById('id').appendChild(script) 它会给我空异常
    【解决方案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>
    }
    

    【讨论】:

    • 这是一个很好的项目,但我认为它需要更新。在 JSX 中放置 &lt;Helmet&gt; 组件会显示警告:react-dom.development.js:12466 Warning: componentWillMount has been renamed, and is not recommended for use.
    猜你喜欢
    • 2013-06-11
    • 1970-01-01
    • 2010-12-20
    • 2019-03-12
    • 2014-09-15
    • 1970-01-01
    • 2011-10-30
    • 2011-01-13
    • 1970-01-01
    相关资源
    最近更新 更多