【问题标题】:Load external script which has document.write using ReactJS使用 ReactJS 加载具有 document.write 的外部脚本
【发布时间】:2018-11-06 09:02:59
【问题描述】:
我正在尝试使用以下脚本加载 cricruns 小部件,该脚本具有 document.write,它将在我提供的特定容器中加载小部件。如何在 ReactJS 中的 render() 中实现这一点?
<script src="//www.cricruns.com/system/application/views/widgetBase/wid_300_200_1.js" type="text/javascript"></script>
请查看fiddle 了解更多关于我想要实现的目标。
提前致谢。
【问题讨论】:
标签:
javascript
html
reactjs
dom
react-dom
【解决方案1】:
***更新:好的,我已经玩了一点。如果您只是绕过 document.write 并使用 dangerouslySetInnerHTML 直接添加 iframe,它就可以工作。我在下面添加了一个工作代码框和一个代码示例。
希望对你有帮助!
https://codesandbox.io/s/z6k1w94z8m
import React from "react";
import { render } from "react-dom";
const App = () => {
return <div dangerouslySetInnerHTML={{__html: `
<iframe src="https://www.cricruns.com/widgetbase/wid_300_200_1"; width=250&colorscheme=light&show_faces=true&stream=false&header=true&height=320 " scrolling="yes" frameborder="0" style="border:none; overflow:hidden; width:310px; height:250px;" allowTransparency="true"></iframe>
`}} />;
};
render(<App />, document.getElementById("root"));
【讨论】:
-
加载脚本后,我想获取脚本中的内容(其中有document.write(...),它将把小部件加载到那个特定的容器中)。请检查此fiddle
-