如果我打开一个窗口使用
window.open('myurl.html', 'windowname', 'width=100,height=100');
如何使用“windowname”引用新窗口(来自打开它的同一页面)?这个问题是专门针对这个的。我知道我可以通过使用“var mywin = window.open(...)”来保存对句柄的引用,但在这种情况下我不在乎。
谢谢, - 戴夫
如果我打开一个窗口使用
window.open('myurl.html', 'windowname', 'width=100,height=100');
如何使用“windowname”引用新窗口(来自打开它的同一页面)?这个问题是专门针对这个的。我知道我可以通过使用“var mywin = window.open(...)”来保存对句柄的引用,但在这种情况下我不在乎。
谢谢, - 戴夫
如果您没有保存对窗口的引用,则无法恢复它。但是,如果该窗口仍处于打开状态并且如果页面加载有属于相同的域名页面,您可以运行在它的JavaScript代码:
window.open("javascript:doSomething()", "windowname");
在您的场景中这是否足够取决于您要实现的目标。
在 firefox 中(也可能在其他浏览器中工作,但现在不是我关心的问题)我能够在多个页面加载中引用一个窗口
var w = window.open("", "nameofwindow");
如果它不存在,则打开新窗口,如果存在,则返回对现有窗口的引用,而不更改窗口的内容。
使用 jQuery,我可以添加新内容,以便快速收集这样的相关链接
$('body', w.document).append(link_tag);
彼得是正确的:
var w = window.open("", "nameofwindow");
适用于所有浏览器,我使用它来检索对先前由不同页面打开的窗口对象的引用。唯一的问题是页面的初始打开,如果弹出窗口不存在,您将获得一个带有空白页面的新窗口。
我尝试在另一个文档的上下文中调用 Javascript 函数,以检查我是否打开了新窗口或检索了已激活的页面。如果检查失败,我只需再次调用 window.open 来实际加载我的弹出内容:
var w = window.open("http://mydomain.com/myPopup", "nameofwindow");
希望有帮助。
这不可能。windowName 只是在target="..."
链接/表单中使用,或者在另一个window.open
调用中再次使用相同的名称以在该窗口中打开一个新的 url。
尝试使用名称打开该窗口,但 URL 再次为 '',以检查它是否为空白窗口。如果它是打开的,那么你会看到窗户;如果没有,则会打开一个新窗口,您需要关闭它。在 localStorage 中添加子项将有助于防止打开新的空白窗口。