如何在javascript中调用另一个窗口的函数?

时间:2014-08-27 01:57:23

标签: javascript jquery html

我使用window.open打开一个新标签。新选项卡在脚本标记中定义了一个javascript myfunction函数。从打开新窗口的窗口,我想运行该功能。

我该怎么做?

由于

这样的东西
var a = window.open("mypage.html", "_blank");
a.myfunction("hi");

修改

这不起作用。它没有做警报。

开瓶器

        var w = window.open("../scripts/map.php", "_blank");
        w.postMessage("The user is 'bob' and the password is 'secret'", "*");

新标签

        function receiveMessage(event) {
            alert(event.data);
        }
        window.addEventListener("message", receiveMessage, false);

2 个答案:

答案 0 :(得分:7)

var a = window.open("mypage.html", "_blank");
a.focus();

a.addEventListener('load', function(){
  a.myfunction("hi");
}, true);

答案 1 :(得分:0)

假设php文件提供了新窗口的内容:

window.open('http://www.example.com/myFile.php?parameter=' + parameter, 'myWindow', 'width=500,height=500,scrollbars=yes').focus();

然后在myFile.php的php部分:

$myParam = (isset($_GET['parameter'])) ? $_GET['parameter'] : null;

然后使用body onload调用函数:

<head>
<script>
    var myParam = '<?= $myParam ?>';
</script>
</head>
<body onload="myFunction()">

该函数测试是否存在$ myParam:

function myFunction() {
    if (myParam) {
        //do Something
    }
}