Javascript 如何在从父窗口调用的子窗口中设置输入文本值?

Javascript 如何在从父窗口调用的子窗口中设置输入文本值?,javascript,Javascript,我想在子窗口中设置文本框值。这个值是从父窗口传递的。我正在使用HTML和Javascript。提前谢谢。我的代码如下 在父窗口中 var newWindow = window.open('child.html'); newWindow.id = 1; newWindow.init(); 在子窗口中 function init(){ document.getElementById('id').value = id; } 我认为我的代码没有调用init()函数。 我试过了 window.open

我想在子窗口中设置文本框值。这个值是从父窗口传递的。我正在使用HTML和Javascript。提前谢谢。我的代码如下

在父窗口中

var newWindow = window.open('child.html');
newWindow.id = 1;
newWindow.init();
在子窗口中

function init(){
document.getElementById('id').value = id;
}
我认为我的代码没有调用init()函数。 我试过了

window.open('child.html').document.getElementById('id').value += 1;

在我的父窗口中,它不工作。

您需要等待页面实际加载到子窗口中:

var newWindow = window.open('child.html');
newWindow.addEventListener("DOMContentLoaded", function() {
    newWindow.id = 1;
    newWindow.init();
});
根据用于加载
init
script
标记,您可能需要更具防御性:

var newWindow = window.open('child.html');
newWindow.addEventListener("DOMContentLoaded", function() {
    tryInit();
    function tryInit() {
        if (!newWindow.init) {
            setTimeout(tryInit, 10);
            return;
        }
        newWindow.id = 1;
        newWindow.init();
    }
});
你可能会在(比如)20秒后放弃,所以如果出现问题,它不会不断循环