在React中创建新的外部脚本实例



我一直坚持在我的React应用程序中集成外部脚本。这个想法是使用外部html/js小部件,它将根据输入字段中的数据建议地址。

这个小部件需要两件事:

  1. <script type="text/javascript" src="https://some.address.com/widget.min.js"></script>-必须在html头标签内。
  2. <script> var widget = new jsWidget ({"detail1":"foo","detail2":"bar","lang":"en"});</script>-必须在html正文标签内。

我的问题是-如果给定的项目不作为模块导入,我如何创建外部脚本的新实例?我知道第一部分可以用useEffect钩子解决。但是,如果我尝试创建jsWidget的新实例,代码编辑器会抛出一个错误,说jsWidget没有定义。

给定的小部件在纯html中工作良好。例如:

<html>
<head>
<script1></script1>
</head>
<body>
<script2></script2>
</body>
</html>

我已经被困在这个很长一段时间了,我不能想出一个方法来解决这个问题。如果有人能给我一些建议,我将非常感激。

可能不是最好的方法。我想它会成功的

var script1 = document.createElement("script");
script1.type = "text/javascript";
script1.src = "https://some.address.com/widget.min.js";
var script2 = document.createElement("script");
script2.innerHTML = 'new jsWidget ({"detail1":"foo","detail2":"bar","lang":"en"});';
document.head.appendChild(script1);
script1.onload = function () {
document.body.appendChild(script2);
};

最新更新