为什么<script>在运行时添加标签不会加载 javascript 文件?(有反应.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>

这似乎是完美的,但问题是,它不加载脚本。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中。

我昨天刚刚将Disqus添加到我的React应用程序中。我使用了"react- discus -thread"模块,很快就启动并运行了起来。

这里是在github: https://github.com/mzabriskie/react-disqus-thread

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

组件采用以下道具:

  • 短名称-这是'myapp'在//myapp.disqus.com/embed.js
  • 标识符-一个唯一的blogId,可以在url更改时识别您的博客文章
  • 标题
  • url -如果你不提供这个,模块将检测url并提供它。

您测试的是哪个浏览器?如果你在你的脚本标签中使用async="true",它不会阻塞。但目前只有几个浏览器支持。

最新更新