iframe加载时执行javascript

时间:2016-08-22 12:25:11

标签: javascript jquery iframe

我的iframe历史记录有一组控制变量。在iframe完全加载后(当用户clic在iframe内的某个链接上时)它会发生变化

$('#iframe').load(function(){
    if ((action == 'forward')) {
        window.historyControl+=1;
    } else {
        window.historyControl-=1;
    }
});

对于我尝试做的事情,它工作得很好但是当用户在iframe完全加载之前更改iframe网址时,.load()函数不会执行。

如果我将其放在vanilla javascript中并使用iframe中的onLoad=()参数调用该函数,也会发生同样的情况。

有没有办法在iframe加载他的内容时执行一些javascript代码?

我无法控制iframe内容。

2 个答案:

答案 0 :(得分:0)

您可以使用$('#iframe').ready(function(){...})。当iframe的DOM结构准备好时,回调将执行,而.load()回调仅在加载图像等时执行。资料来源:jQuery - What are differences between $(document).ready and $(window).load?

答案 1 :(得分:0)

在追踪@MarcosPérezGude之后,我在iframe的php文件中的<head>之上添加了一个脚本。它会触发一个函数

<script>window.parent.myFunction();</script>"

在父窗口的函数中,我执行我的代码

function myFunction() {
 if ((action == 'forward')) {
        window.historyControl+=1;
    } else {
        window.historyControl-=1;
    }
}