我需要允许用户单击“page-1.htm”中的链接并打开一个弹出窗口.然后,当用户在主浏览器窗口中浏览“page-2.htm”时,我需要能够引用弹出窗口.
“page-1.htm”中的JavaScript
var playerWin = window.open("player.htm", "playerWin", "width=300,height=130");
playerWin.play("song.mp3"); // play() is a function in player.htm
“page-2.htm”中的JavaScript
playerWin.play("tune.mp3");
page-2.htm中的此代码生成错误“playerWin未定义”.这是可以理解的,因为在页面2.htm上没有定义名为playerWin的变量.
我的问题是:我能从第2.htm页引用弹出窗口吗?
解决方法:
即使你离开开启页面,我刚做了一个快速测试,弹出窗口仍然有’开启者’对象,你可以访问它.因此,要么轮询开启者并重置引用,要么在离开页面等待然后重新链接后添加计时器.
1.htm
<script>
var w = window.open("p.htm", "playerWin", "width=300,height=130");
</script>
<a href="2.htm">2</a>
p.htm
<a href="javascript:opener.w=this;">re-link</a>
2.htm
<script>
var w;
</script>
<a href="javascript:alert(w);">check</a>