js中window对象的opener属性的一个坑

2018-05-08 17:48:33

今天我编写js代码时碰到了一个让我纠结了很久的小问题,在此记录一下当做笔记,

这个问题就是:在我自己写的子窗口中用opener属性却获取不到父窗口的window对象。

现在已经解决这个问题,请看下文



这是父窗口(windows.html)的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
  <input type="button" value="打开子窗口" onclick="show()" /><br/>
</body>
<script type="text/javascript" >
  function show(){
    window.open("user.html","","height=300,width=400","");
  }
</script>
</html>



这是子窗口(user.html)的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
  <input type="button" value="弹出来" onclick="run()" /><br/>
</body>
<script type="text/javascript" >
  function run(){
    window.opener.alert("弹弹弹");
  }
</script>
</html>



不出意外的话,点击一下父窗口的button,会弹出子窗口,

然后再点击子窗口是button,父窗口中会出现一个弹窗(弹窗上写着弹弹弹三个字);

然而却父窗口却没有弹窗弹出来,接下来我在子窗口按f12看调试的时候,有错误说我没有获取到父窗口的引用。。。

纠结了好久之后,我换了另外一个浏览器火狐,然后成功了。

解决这个问题的方法就是,不能用Chrome这个浏览器来运行这段代码(并非黑Chrome),至于原因我也不太清楚。。。。先不管这个了

原文地址:https://www.cnblogs.com/oldpub-blog/p/9009832.html

时间: 2024-12-10 17:44:14

js中window对象的opener属性的一个坑的相关文章

js中window对象详解以及页面跳转

js中window对象详解以及页面跳转 转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%90%9C/39219.shtml 1.window.top.window.location = "index.asp"; 2.window.top.location.href="index.asp" 3. window.top.location.replace("index.asp");

js中Window 对象及其的方法

window.location 对象 window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面.window.location 对象在编写时可不使用 window 这个前缀. location.hostname 返回 web 主机的域名 location.pathname 返回当前页面的路径和文件名 location.port 返回 web 主机的端口 (80 或 443) location.protocol 返回所使用的 web 协议(http://

JS的window对象下的属性的方法和注意事项

一.通过浏览器获得屏幕的尺寸 screen.width screen.height screen.availHeight //获取去除状态栏后的屏幕高度 screen.availWidth //获取去除状态栏后的屏幕高度 二.获取浏览器窗口内容的尺寸 //高度 window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight //宽度 window.innerWidth || doc

js中Dom对象的position属性

首先应该明白什么是流?这个估计也很容易明白,我就不说了.顺便说下,float设置了这个属性就暂时脱离了流的存在,clear后才会到流里面. position:absolute| fixed | relative| static | inherit 默认的HTML流属性其实就是指position:static.如果我们想要在页面上固定显示元素,就选择absolute,它是以页面左上角为(0,0),根据top,left,width,height来布局的,注意这里是根据页面布局.fixed是当前窗口布

js中window.self,window.top,window.parent,window.opener

在js中window.self,window.top,window.parent,window.opener四个的作用区别还是很大的, window.self,window.top是打开模式, 而window.parent,window.opener是父窗口打开模式,下面我来介绍介绍. =============================================================== 在应用有frameset或者iframe的页面时, parent是父窗口, top是

swfupload js中 file 对象的属性

name=3cc68cfc60b87e6dd6887d8a.jpg modificationdate=Wed   Apr 21 15:48:30 UTC+0800 2010 filestatus=-1 post=[object   Object] type=.jpg index=0 size=29006 creationdate=Wed Apr 21 15:48:38 UTC+0800   2010 id=SWFUpload_0_0swfupload js中 file 对象的属性,布布扣,bub

JS中的对象和方法简单剖析

众所周知,在js中对象就是精髓,不理解对象就是不理解js. 那么什么事js中的对象呢? 在js中,几乎一切皆对象: Boolean ,String,Number可以是对象(或者说原生数据被认作对象): Dates ,Maths,Regexps,Arrays,Funcitons,当然Objects,这些都是对象: JS中,所有值,除了原生值,都是对象:这些原生值包括:strings,numbers('3.14'),true,false,null和undefined 对象是包含变量的变量,js变量可

通过&lt;frameset&gt;和&lt;iframe&gt;看JavaScript中window对象parent、self、top的区别

<frameset>.<frame>.<iframe>这3个html元素的区别,可以参考这篇文章"frame,iframe,frameset之间的关系与区别".标准的使用方式如下: <!--iframe 是在html页面内嵌入框架框架内可以连接另一个页面--> <html> <head></head> <body> <iframe src="xxx.html">

关于js中window.location.href,location.href,parent.location.href,top.location.href的使用方法

关于js中"window.location.href"."location.href"."parent.location.href"."top.location.href"的使用方法 "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一层页面跳转 "top.locatio