无法获取window.open()

时间:2017-05-23 20:32:26

标签: javascript html window

我在阅读用window.open()打开的窗口内的文本时遇到一些麻烦我希望你们能帮助我,我需要的是我的父窗口会读取<div> html值父窗口调用的子窗口, 我有这个代码,但它不起作用

父窗口

<button onclick="buttonset()">Click me</button>
<script>
var myWindow ;
 function buttonset () {
         myWindow = window.open("pag1.html", "myWindow", "width=200,height=100");
    //myWindow.document.write("<div id='hola'>This is 'myWindow'</div>");
    alert(myWindow.document.getElementById("result").innerHTML);
    myWindow.close();
}
</script>

这是我的子窗口( pag1.html )代码

    <body>

<div id="result">1</div>
<div id="msj">Correcto</div>

</body>

当我运行它时说只打开新窗口但它没有显示消息

  

无法读取null

的属性'innerHTML'

3 个答案:

答案 0 :(得分:2)

window.open()是异步的,您需要等待文档加载。

function buttonset () {
    var myWindow = window.open("pag1.html", "myWindow", "width=200,height=100");
    myWindow.onload = function() {
        alert(myWindow.document.getElementById("result").innerHTML);
        myWindow.close();
    };
}

答案 1 :(得分:1)

使用已开启load

window事件
myWindow.onload = function() {
  // do stuff
}

答案 2 :(得分:0)

页面仍在加载。因此,您可以在pag1.html

的body标签上附加内联onload函数

pag1.html

<body onload='doIt()'>   
  <div id="result">1</div>
  <div id="msj">Correcto</div>
  <script>
     function doIt() {
       alert(document.getElementById("result").innerHTML);
    }
   </script>
</body>