2016-02-03 32 views
0

我有一个页面(我们将其称为父页面),其中包含一个iframe与另一个页面的内容(我们称之为子页面)。如何在Javascript EventListener不发射的情况下运行代码?

这2页面托管于不同的域名。

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

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

我在两个页面上使用eventListeners来侦听邮件。我的意图是,如果父母在某个时间段内没有收到回复消息,则应更改位置并加载默认页面。

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

或者还有另外一种方法可以实现我没有想到的目标吗?

+0

您可以设置一个计时器;当它关闭时,检查你的eventListener是否关闭并且相应地采取行动。 –

+0

[相关](http://stackoverflow.com/questions/3705083/how-can-i-handle-errors-in-loading-an-iframe)。 – Kenney

回答

0

你可以做类似如下:

var onNoEvent = setTimeout(function(){ 
    //... do your thing 
}, 3000); 

window.addEventListener('message', function(){ 
    clearTimeout(onNoEvent); //cancel the timeout event 

}, false); 
相关问题