我正在使用以下javascript打开另一个窗口,我想检查该窗口是否实际打开,但是如果窗口未打开,我希望它调用“pause()”函数。即使经过3天的研究,我也不知道如何做到这一点,有人可以指导我吗?
打开窗口的javascript:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
<script type="text/javascript">
var windowSizeArray = ["width=300,height=300",
"width=200,height=400,scrollbars=yes"];
$(document).ready(function () {
$('#newWindow').click();
window.open($('#newWindow').attr('href'), 'window name', 'window settings')
$('.newWindow').click(function (event) {
var url = $(this).attr("href");
var windowName = "popUp"; //$(this).attr("name");
var windowSize = windowSizeArray[$(this).attr("rel")];
window.open(url, windowName, windowSize);
event.preventDefault();
});
});
</script>
如果该窗口未打开,我希望它调用暂停功能:
<a href="javascript:void(0);" onclick="pause();"><img name="b1" src="system/modules/surf/stop.png" border="0" alt="Pause" title="Pause" style="position:absolute;top:28px;margin-left:5px"></a>
答案 0 :(得分:1)
函数window.open()
返回新创建的窗口的句柄,该窗口具有closed
属性。如果新窗口已关闭,则此属性为true:
var popuphandle=window.open(...);
alert(popuphandle.closed);
如果您需要持续监控窗口状态,请使用window.setInterval()
:
window.setInterval(function()
{
if (popuphandle.closed) pause();
}, 1000);
答案 1 :(得分:0)
你可以在新窗口中反复告诉window.opener它仍然通过调用opener的函数打开它
window.opener.callFunctionToTellIamOpened()
要反复调用此函数,您可以使用setInterval http://www.w3schools.com/jsref/met_win_setinterval.asp