Javascript,确定哪个 window 已打开,window.open
Javascript, identifying which window was open, window.open
我正在点击打开多个 windows 和 window.open。
我想知道,10 秒后,哪个 window 仍然打开。
有没有办法唯一标识我刚打开的 window?
我使用下面的代码,但是如果我打开一个 window,关闭它,然后再打开另一个,代码将抛出警报 "window still open" 两次。
我明白为什么,但是有没有一种简单的方法来识别 window,所以我可以检查 var_win.closed 我想要的 window,而不是最后打开的那个?
<div class="get_link" data-url="http://www.yahoo.com">Window 1</div>
<div class="get_link" data-url="http://www.yahoo.com">Window 2</div>
<div class="get_link" data-url="http://www.google.com">Window 3</div>
<div class="get_link" data-url="http://www.space.com">Window 4</div>
Javascript:
jQuery(document).ready(function(e) {
e( "body" ).on( "click", ".get_link", function(t) {
t.preventDefault();
var n = e(this);
var u = n.data("url");
var_win=window.open(u);
function checkwindow(){
if (!var_win.closed)
alert( "window still open");
else
alert ("window closed");
}
setTimeout(checkwindow, 10000);
return false
})
})
不,你不能。如果我理解正确,您想检测用户是否说例如去 Yahoo!或 Facebook(一个独立于您自己的网站),如果他们决定关闭该网站 window,请采取行动或从中获取一些信息。
也许如果链接指向您拥有的网站,您可以在这些特定网站上添加一些逻辑,以便在它们被 eventListener unload
(although even this isn't 100% reliable) 关闭时发送请求,但是如果它们是您无法控制的站点,那么您获取该信息的方式并不多。如果您可以检测到某人在您自己网站的其他页面上的互动,就会出现一些严重的安全问题。
如果说您要以模态显示这些网站,那么一个骇人听闻的替代方案是(我猜)您可以在用户将导航到的网站的模态中显示 iFrame。这不会是他们浏览器中的新选项卡,甚至不会是新的 window——而是您在您的站点中创建的模式,因此您可以完全控制。这不仅仅是一个简单的 window.open
,而且需要您做更多的工作。
我正在点击打开多个 windows 和 window.open。 我想知道,10 秒后,哪个 window 仍然打开。 有没有办法唯一标识我刚打开的 window?
我使用下面的代码,但是如果我打开一个 window,关闭它,然后再打开另一个,代码将抛出警报 "window still open" 两次。 我明白为什么,但是有没有一种简单的方法来识别 window,所以我可以检查 var_win.closed 我想要的 window,而不是最后打开的那个?
<div class="get_link" data-url="http://www.yahoo.com">Window 1</div>
<div class="get_link" data-url="http://www.yahoo.com">Window 2</div>
<div class="get_link" data-url="http://www.google.com">Window 3</div>
<div class="get_link" data-url="http://www.space.com">Window 4</div>
Javascript:
jQuery(document).ready(function(e) {
e( "body" ).on( "click", ".get_link", function(t) {
t.preventDefault();
var n = e(this);
var u = n.data("url");
var_win=window.open(u);
function checkwindow(){
if (!var_win.closed)
alert( "window still open");
else
alert ("window closed");
}
setTimeout(checkwindow, 10000);
return false
})
})
不,你不能。如果我理解正确,您想检测用户是否说例如去 Yahoo!或 Facebook(一个独立于您自己的网站),如果他们决定关闭该网站 window,请采取行动或从中获取一些信息。
也许如果链接指向您拥有的网站,您可以在这些特定网站上添加一些逻辑,以便在它们被 eventListener unload
(although even this isn't 100% reliable) 关闭时发送请求,但是如果它们是您无法控制的站点,那么您获取该信息的方式并不多。如果您可以检测到某人在您自己网站的其他页面上的互动,就会出现一些严重的安全问题。
如果说您要以模态显示这些网站,那么一个骇人听闻的替代方案是(我猜)您可以在用户将导航到的网站的模态中显示 iFrame。这不会是他们浏览器中的新选项卡,甚至不会是新的 window——而是您在您的站点中创建的模式,因此您可以完全控制。这不仅仅是一个简单的 window.open
,而且需要您做更多的工作。