alert(opener.name)为何没有结果?

教材上说:alert(opener.name)可以获得父窗口的名字。

cat father.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
    window.open('file:///tmp/child.html');
    </script>
</body>
<p>i am father window</p>
</html>

cat child.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script>
        alert(opener.name);
    </script>
</head>
<body>
    <p>i am child window</p>
</body>
</html>

浏览器中输入 file:///tmp/father.html ,child.html也会打开,但是为何没有alert窗口打开?

阅读 1.6k
3 个回答

opener未定义,获取opener.name时候直接报错:Uncaught TypeError: Cannot read property 'name' of null,所以不会alert

丢服务器去执行吧

可能是浏览器安全策略把? 你这个肯定报错啊,看看报错信息就知道了。

文件协议这样操作获取是不行的,最起码换成http协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题