识别脚本是否已执行

时间:2019-02-07 03:02:59

标签: javascript dom innerhtml

如果使用HTMLElement.innerHTML插入了脚本标签,则不会执行。是否有办法通过查看HTMLScriptElement来确定它从未执行过?

更长的上下文:具有服务器端渲染功能的React应用程序使用React的dangerouslySetInnerHTML注入可能包含<script>标签的动态内容。当服务器端渲染时,这些脚本运行,而当客户端端渲染时,它们则不运行。我想使用生命周期钩子来检查客户端脚本是否执行,而不执行由于服务器端渲染而已执行的脚本。

1 个答案:

答案 0 :(得分:0)

我发现了一个React解决方法,它不能真正解决基本问题。我没有试图告诉给定的脚本元素是否已经被实际执行,而是在之前页面上构建了所​​有脚本的列表(在组件构造函数中),然后调用了render方法,然后在重新创建脚本元素时我只需忽略我已经看到的来源即可。

这使我可以识别渲染器添加的所有脚本,因为它们不在原始集中。

仍然对最初的问题感到好奇,因为这样可以提供更优雅的解决方法。