2016-03-07 61 views
1

我正在嘗試使用腳本標記動態加載腳本。但我無法做到。通過腳本標記加載外部javascript

我的渲​​染方法如下

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

觀看[相關鏈接](http://stackoverflow.com/questions/1197575/can-scripts-be-inserted-with-innerhtml) – enjoylife

+0

該鏈接不適合我 –

回答

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> 
); 
} 
+0

我不想追加它的身體元素。我想追加它以便div元素。如果我做document.getElementById('id')。appendChild(腳本)它會給我空例外 –

4

我相信你可以在一旦腳本已經加載應該怎樣做更具體。像這樣的東西應該適合你得好:

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*/; 
    }; 
}