Javascript 当两个浏览器完全独立时,将window.open对象从一个浏览器传递到另一个浏览器
我有一个要求,在其中,我通过一个窗口打开两个浏览器窗口。假设a打开B和C。然后在其中一个子窗口(假设B)中,我打开另一个窗口(假设D)。现在,在这个新窗口(D)中,我想访问C的对象,以检查该窗口是打开的还是关闭的 我可以用javascript实现吗 我知道您可以通过use window.open和window.opener,但这仅适用于浏览器窗口具有父子关系的情况。但就我而言,这并没有发生Javascript 当两个浏览器完全独立时,将window.open对象从一个浏览器传递到另一个浏览器,javascript,Javascript,我有一个要求,在其中,我通过一个窗口打开两个浏览器窗口。假设a打开B和C。然后在其中一个子窗口(假设B)中,我打开另一个窗口(假设D)。现在,在这个新窗口(D)中,我想访问C的对象,以检查该窗口是打开的还是关闭的 我可以用javascript实现吗 我知道您可以通过use window.open和window.opener,但这仅适用于浏览器窗口具有父子关系的情况。但就我而言,这并没有发生 任何帮助都是值得的。是的,你可以。假设您的页面A打开windows B和C,如下所示: var b = w
任何帮助都是值得的。是的,你可以。假设您的页面A打开windows B和C,如下所示:
var b = window.open("childB.html", "_blank");
var c = window.open("childC.html", "_blank");
然后您的窗口b
即页面childB.html
打开windowdd
var d = window.open("childD.html", "_blank")
在childD.html
的javascript代码中,您可以放置代码:
var propC = opener.opener.c.propertyOfC;
opener.opener
将引用原始窗口A,该窗口可以引用.c
及其所有对象
您必须添加对窗口/属性存在性的检查(最有可能是try/catch)是的,您可以。假设您的页面A打开windows B和C,如下所示:
var b = window.open("childB.html", "_blank");
var c = window.open("childC.html", "_blank");
然后您的窗口b
即页面childB.html
打开windowdd
var d = window.open("childD.html", "_blank")
在childD.html
的javascript代码中,您可以放置代码:
var propC = opener.opener.c.propertyOfC;
opener.opener
将引用原始窗口A,该窗口可以引用.c
及其所有对象
您必须添加对窗口/属性存在性的检查(最有可能的是try/catch)这里有一个使用纯javascript(也称为无库)的有效解决方案 将此脚本复制到一个新的空白文件中,并将其命名为window_manager.js
var windows = {};
function openWindow(url, name, features) {
windows[name] = window.open(url, name, features);
return windows[name];
}
function closeWindow(name) {
var window = windows[name];
if(window) {
window.close();
delete windows[name];
}
}
函数已打开(windowName,checkparents){
使用
使用pastebin中给出的代码创建所有4个html文件:a.htm、b.htm、c.htm和d.htm。浏览到a.htm将打开windows b&c。窗口b将打开窗口d。窗口d将检查窗口c并返回True。关闭窗口c并刷新窗口d。现在将返回false,因为c不再打开n使用纯javascript(也称为无库) 将此脚本复制到一个新的空白文件中,并将其命名为window_manager.js
var windows = {};
function openWindow(url, name, features) {
windows[name] = window.open(url, name, features);
return windows[name];
}
function closeWindow(name) {
var window = windows[name];
if(window) {
window.close();
delete windows[name];
}
}
函数已打开(windowName,checkparents){
使用
使用pastebin中给出的代码创建所有4个html文件:a.htm、b.htm、c.htm和d.htm。浏览到a.htm,它将打开windows b&c。窗口b将打开窗口d。窗口d将检查窗口c并返回True。关闭窗口c并刷新窗口d。现在将返回false,因为c不再打开我认为使用jquery和jstorage将是一个更简单的解决方案。只要让每个窗口在打开时将自身添加到jstorage对象中,并在关闭时将自身从jstorage对象中移除即可。然后从任何窗口检查您感兴趣的窗口是否在对象中有属性键。感谢各位的帮助……这对我很有用。:)我认为使用jquery和jstorage将是一个更简单的解决方案。只要让每个窗口在打开时将自身添加到jstorage对象中,并在关闭后将自身从jstorage对象中移除。然后从任何窗口检查您感兴趣的窗口是否在对象中有属性键。感谢大家的帮助……这对我很有用。:)