簡體   English   中英

為什么在運行時添加<script>標記不會加載javascript文件? (with react.js)

[英]Why adding a <script> tag at runtime doesn't load the javascript file? (with react.js)

我有這個react.js腳本,它將以下代碼添加到html中

// returned by the render method
React.DOM.div({
    dangerouslySetInnerHTML:  {
        __html: '<script type="text/javascript" async="" src="//myapp.disqus.com/embed.js"></script>'
    }
})

現在我的HTML看起來像:

<script type="text/javascript" async="" src="//myapp.disqus.com/embed.js"></script>

這似乎很完美,但問題是它不加載腳本。 腳本標記插入到正文的中間,嵌套在其他一些div標記中。

可能是什么問題? 謝謝

將腳本標記渲染到帶有react的頁面是不正確的解決方案 - 我不能讓它與JSX一起工作,我認為這同樣適用於此。 不知道為什么,但只需添加簡單的舊JavaScript方式:

    var script = document.createElement("script");

    script.src = "//myapp.disqus.com/embed.js";
    script.async = true;

    document.body.appendChild(script);

將它放在根組件的componentWillMount中。

我剛剛在我的React應用程序中添加了Disqus。 我使用了'react-disqus-thread'模塊,並立即啟動並運行。

這是在github上: https//github.com/mzabriskie/react-disqus-thread

和npm: https ://www.npmjs.com/package/react-disqus-thread

該組件采用以下道具:

  • shortname - 這是//myapp.disqus.com/embed.js中的'myapp'
  • 標識符 - 一個唯一的blogId,可以在網址更改時識別您的博客帖子
  • 標題
  • url - 如果你不提供這個,模塊將檢測網址並提供它。

您測試了哪種瀏覽器? 如果在腳本標記中使用async =“true”,則不會阻止。 但這只是由幾個瀏覽器支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM