gpt4 book ai didi

javascript - 加载当前脚本时执行脚本

转载 作者:行者123 更新时间:2023-11-28 03:52:00 24 4
gpt4 key购买 nike

我想做一些类似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>

<小时/>

除此之外,我只能认为(按照评论中的建议)使用一个空回调,如果满足您的条件,该回调将被您的代码覆盖。

类似于

<script>
let afterscriptexecute = function(){};

// .. your code

if (Math.random() < 0.5){ // if condition is met
afterscriptexecute = function(){
// do something
alert('conditions were met');
}
}

// end of your code

afterscriptexecute();
</script>

关于javascript - 加载当前脚本时执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com