Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';我不能得到另一个窗口的内容吗?_Javascript - Fatal编程技术网

Javascript 为什么可以';我不能得到另一个窗口的内容吗?

Javascript 为什么可以';我不能得到另一个窗口的内容吗?,javascript,Javascript,我是一个javascript初学者。我编写了一个javascript代码,在新窗口中打开一个网站,然后获取新窗口的内容并在第一个窗口中显示。。这是代码: <!DOCTYPE html> <html><head></head><body> <div id="display"></div> <script type="text/javascript"> var newwin=window.open

我是一个javascript初学者。我编写了一个javascript代码,在新窗口中打开一个网站,然后获取新窗口的内容并在第一个窗口中显示。。这是代码:

    <!DOCTYPE html>
<html><head></head><body>
<div id="display"></div>
<script type="text/javascript">
var newwin=window.open("http://www.w3schools.com");
newwin.onload=function () 
{display.innerHTML = newwin.document.documentElement.innerHTML;};
</script>
</body></html>

var newwin=window.open(“http://www.w3schools.com");
newwin.onload=函数()
{display.innerHTML=newwin.document.documentElement.innerHTML;};
它不起作用。。网站已在新窗口中打开,但内容未显示在第一个窗口中。。为什么?
提前感谢。

如果子窗口来自其他域,则无法执行此操作。出于安全原因,每个域都与其他域进行沙盒处理。

使用
\u parent
作为定位网页的第二个参数。(顺便说一句,我假设您允许在浏览器设置中使用弹出窗口)


var newwin=window.open(“http://www.w3schools.com“,”家长“)

有两个错误阻止您:

  • 不同领域
  • 即使是同一个域,也要在调用window.open()后设置onload函数。因此,新的“onload”行为永远不会运行
  • 同一域的解决方案:

    <!DOCTYPE html>
    <html><head></head><body>
    <div id="display"></div>
    <script type="text/javascript">
    var w=window.open("another.html");
    var tid = setInterval function () {
        if (w.document.readyState !== 'complete')
        return;
        clearInterval(tid);  
        display.innerHTML = w.document.documentElement.innerHTML);  
    }, 100);
    </script>
    </body></html>
    
    
    var w=window.open(“另一个.html”);
    var tid=setInterval函数(){
    如果(w.document.readyState!=“完成”)
    返回;
    净空时间间隔(tid);
    display.innerHTML=w.document.documentElement.innerHTML);
    }, 100);
    
    您想做什么?有两个具有相同内容的窗口?为什么不使用iframe?除非iframe来自同一域@bhspencer我知道同源策略的工作原理,否则iframe也会有相同的问题。重点是使用iframe显示另一个页面。当然,出于安全原因,您不能使用JavaScript读取该页面的内容。另请参见示例中OP正在尝试访问www.w3schools.com。假设它不在同一个域中如果我使用window.open,我可以访问它您是否访问同一域中的页面?在本例中,OP试图在子窗口中访问www.w3schools.com,该窗口可能位于另一个域中。哎哟,对不起,收到了:)。但是你应该解释清楚你有没有试过这个。如果新窗口与本例中的情况不在同一个域上,这是否有效example@bhspencer在发布之前,我在本地机器上进行了尝试。。。FF+Chromium(使用Ubuntu)@bhspencer在我这边,浏览器唯一需要确认打开的东西,我在回答中提到了这一点