Javascript-使用window.open()访问另一个HTML文件;

Javascript-使用window.open()访问另一个HTML文件;,javascript,html,Javascript,Html,所以基本上我要做的是打开一个带有本地文件位置的窗口(假设在同一个目录中),并将HTML文件的正文作为字符串存储到运行JavaScript的HTML页面中,然后关闭新窗口,就像它从未真正打开过一样,因此它只用于文本。 JavaScript与主体一起加载 function test(){ var x = document.getElementById("fill"); var w = window.open('../HTML/HtmlPlaceholder.html'); v

所以基本上我要做的是打开一个带有本地文件位置的窗口(假设在同一个目录中),并将HTML文件的正文作为字符串存储到运行JavaScript的HTML页面中,然后关闭新窗口,就像它从未真正打开过一样,因此它只用于文本。 JavaScript与主体一起加载

function test(){
    var x = document.getElementById("fill");
    var w = window.open('../HTML/HtmlPlaceholder.html');
    var cont = w.document.body.textContent;
    x.innerHTML = cont;
}
但是当发生这种情况时,实际上没有任何东西输入到x(id为“fill”的元素)。
你知道我做错了什么吗?

窗口。open
打开另一个有自己线程和事件的窗口

你有两个选择

-等待一段时间检查内容

试试这个

function test(){
    var x = document.getElementById("fill");
    var w = window.open('../HTML/HtmlPlaceholder.html');
    setTimeout( function(){

      var cont = w.document.body.textContent;
      x.innerHTML = cont;

      console.log (cont);
    }, 2000);
}
-或使用弹出窗口本身的window.onload事件

内部
HtmlPlaceholder.html
put

window.onload = function(){

  var x = window.opener.document.getElementById( "fill" );
  x.innerHTML = document.body.innerHTML;
};

如果您执行
console.log(cont)
console向您显示了什么?因为这是一个作业,HTML文件名提供给了我们,但无法编辑,所以我只能选择第一个选项,它工作得很好。但是,在检查内容并将其存储到当前页面后,如何关闭打开的窗口?@Sean
x.close()
将完成此操作,
x
是打开的子窗口的句柄非常感谢,最后一件事,如果你不知道身体的内容物有多大,你认为2000年是你设定的最低延迟吗?只是问一下,因为花这么长时间感觉有点笨重,但没关系。@Sean理想情况下,我会使用第二个选项,因为由于html大小或网络速度,我不知道加载弹出窗口需要多长时间。您需要根据加载此窗口所需的时间接听电话,并选择安全选项。您可能会显示一个加载图标,以指示正在进行处理的用户