Javascript 为什么可以';我不能得到另一个窗口的内容吗?
我是一个javascript初学者。我编写了一个javascript代码,在新窗口中打开一个网站,然后获取新窗口的内容并在第一个窗口中显示。。这是代码:Javascript 为什么可以';我不能得到另一个窗口的内容吗?,javascript,Javascript,我是一个javascript初学者。我编写了一个javascript代码,在新窗口中打开一个网站,然后获取新窗口的内容并在第一个窗口中显示。。这是代码: <!DOCTYPE html> <html><head></head><body> <div id="display"></div> <script type="text/javascript"> var newwin=window.open
<!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在我这边,浏览器唯一需要确认打开的东西,我在回答中提到了这一点