在加载当前脚本时执行脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在加载当前脚本时执行脚本相关的知识,希望对你有一定的参考价值。

我想做像document.currentScript.onload = function(){alert(0)};这样的事情。基本上,在当前脚本完成执行后执行一些代码。你会怎么做?

请注意,这是一个内联脚本。我想只在某些条件下设置onload处理程序,这些条件只能在当前脚本执行期间知道。

我尝试过的:

  1. 上面的片段。这不起作用,我的猜测是你不能在当前正在执行的脚本上设置onload处理程序。我的理由可能是错的。
  2. document.write('x3cscript>alert(0);x3c/script>');。我希望document.write的内容将在当前脚本执行完毕后执行。但是,似乎内容在页面流上写入后立即执行。
答案

load事件被触发only for external scripts(如果它在外部脚本中,您的代码将起作用)。

仅Firefox的解决方案是使用afterscriptexecute事件。

<script id="first">
  document.addEventListener("afterscriptexecute", function(e){
    console.log(`Script "${e.target.id}" just finished executing`);
  }, true);
</script>
<script id="second">console.log('a log');</script>
<script id="third">console.log('another log');</script>
<script id="fourth">console.log('yet another log');</script>

以上是关于在加载当前脚本时执行脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何引用加载当前执行脚本的脚本标签?

npm : 无法加载文件 D:softcodeProcess ode ode_global pm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micr +(代码片段

在主体树中执行脚本时 DOM 准备好了吗?

在执行代码技术之前等待页面加载的用户脚本?

使用 browser.tabs.executeScript 加载时在选项卡上执行的内容脚本不会触发 window.onload 事件

代码片段:Shell脚本实现重复执行和多进程