在iframe中加载特定页面时运行功能

时间:2017-12-01 15:48:33

标签: javascript jquery iframe

我有一个包含iframe的网站,父网站和iframe网页都归我所有。我试图这样做,以便当特定页面导航到该iframe(或其URL中包含某个字符串的任何页面)时,将调用一个函数。我很确定我需要使用location.href,因为无论您在iframe中执行什么操作,src都会保留其原始值。现在我只是通过尝试获得警报进行测试。到目前为止,我已经尝试过这个:

if(
 document.getElementById("myiframe").contentWindow.location.href.indexOf("command") > -1) {
                alert("your iframe url contains the phrase command");
                }

当我使用它时没有任何反应,控制台中没有任何显示,等等。我做错了什么?感谢。

1 个答案:

答案 0 :(得分:0)

(回答我自己的问题,因为实际答案是通过对问题的评论)

使用postMessage更有意义。我只是在iframe的<head>中添加了一个postMessage:

<script>parent.postMessage("start", "*");</script>

...以及父页面<head>中的EventListener,以侦听消息:

<script>
    window.addEventListener("message", function(e){
        if(e.data == "start") stopwatch.start();
    }, false);
</script>