如何在Javascript EventListener未触发的情况下运行代码

How can you run code in the event of a Javascript EventListener NOT firing?

本文关键字:情况下 运行 代码 Javascript EventListener      更新时间:2023-09-26

我有一个页面(我们称之为父页面),其中包含一个带有另一个页面内容的 iframe(我们称之为子页面)。

这两个页面托管在不同的域上。

如果子页面

未加载,我想将子页面的位置更改为默认页面。

我正在使用window.postMessage在2个页面之间进行通信。 我已成功从父页面向子页面发送消息,并且子页面已成功发回消息。

我在两个页面上都使用事件侦听器来侦听消息。我的目的是,如果父级在某个时间范围内没有收到消息,它应该更改位置并加载默认页面。

如果父页面的 eventListener 在一定时间内未触发,有没有办法运行函数?

还是有没有另一种方法来实现我没有想到的目标?

您可以执行以下操作:

var onNoEvent = setTimeout(function(){
  //... do your thing
}, 3000);
window.addEventListener('message', function(){
  clearTimeout(onNoEvent); //cancel the timeout event
}, false);