JavaScript window.open()不';不要立即加载窗口

JavaScript window.open()不';不要立即加载窗口,javascript,google-chrome,google-chrome-devtools,Javascript,Google Chrome,Google Chrome Devtools,我有下面的代码。它试图在第6行打开一个窗口。但它会继续加载(在标题栏中显示处理,窗口中显示空白内容)。当我在调试器中单步执行代码并移动到第10行完成第9行的执行时,窗口最终加载,并给出错误消息 未捕获的TypeError:无法读取第9行null的属性“0” 我不明白为什么window.open()不能在window.open()上立即完成网页的加载,以及为什么我通过第9行时它总是完成加载 var pageURL='url'; var w=500; var h=500; var left = (s

我有下面的代码。它试图在第6行打开一个窗口。但它会继续加载(在标题栏中显示处理,窗口中显示空白内容)。当我在调试器中单步执行代码并移动到第10行完成第9行的执行时,窗口最终加载,并给出错误消息

未捕获的TypeError:无法读取第9行null的属性“0”

我不明白为什么
window.open()
不能在
window.open()
上立即完成网页的加载,以及为什么我通过第9行时它总是完成加载

var pageURL='url';
var w=500;
var h=500;
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
var targetWin = window.open (pageURL, "_blank",'toolbar=no, location=no,directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
var windowStr = targetWin.document.documentElement.innerHTML;
var divMatch = windowStr.match(/someregex/);
console.log(divMatch[0]);
在线阅读建议后,我将以下内容放在第6行之后,但行为相同

targetWin.document.close();
这是怎么回事?我正在用Chrome进行调试

我不明白为什么
window.open()
不能立即完成网页加载

这是因为
window.open
是异步的。要获取窗口的内容,您需要等待它被加载

发件人:

请注意,远程URL不会立即加载。当
window.open()
返回时,窗口始终包含
about:blank
。URL的实际获取被延迟,并在当前脚本块完成执行后开始。窗口创建和引用资源的加载是异步完成的

您可以等待
load
事件:

var targetWin = window.open (...);
targetWin.addEventListener('load', function() {
    // Continue doing stuff here.
});
或者,您可以等待
DOMContentLoaded
事件


另外,请注意,只有在得到尊重的情况下才能这样做。

在否决投票之前,我会很感激任何评论……我知道这可能不是有效的代码……但人们的经验仍然可以说话……如果一个人真的需要一个伪代码……那么我必须准备它,看看它是否会给出相同的行为。但是,请在投票表决前询问是否绝对需要伪代码。@wOxxOm您能解释更多吗?如果它是关于CORS的,那么它根本不应该加载,即使是在第9行之后,对吗?