【问题标题】:Identifying whether a script has executed识别脚本是否已执行
【发布时间】:2019-02-07 03:02:59
【问题描述】:

如果使用HTMLElement.innerHTML 插入脚本标签,它不会被执行。有没有办法通过查看 HTMLScriptElement 来识别它从未被执行过?

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

【问题讨论】:

    标签: javascript dom innerhtml


    【解决方案1】:

    我发现了一个 React 解决方法,它并不能真正解决基本问题;我没有尝试判断给定的脚本元素是否已实际执行,而是在页面上构建了所​​有脚本的列表之前调用渲染方法(在组件构造函数中),然后在重新创建脚本元素时我忽略我已经看到源代码的任何内容。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-11
      • 2010-10-25
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2023-01-15
      相关资源
      最近更新 更多