通过窗口名称访问窗口
Access a window by window name
如果使用
打开一个窗口window.open('myurl.html', 'windowname', 'width=100,height=100');
我如何使用'windowname'来引用新窗口(从打开它的同一页面)?这个问题就是关于这个的。我知道我可以通过使用"var mywin = window.open(…)"来保存对句柄的引用,但在这种情况下我不关心这一点。
谢谢,Dave
在firefox中(可能在其他浏览器中也工作,但现在这不是我关心的),我能够在多个页面加载中引用一个窗口
var w = window.open("", "nameofwindow");
如果不存在则打开新窗口,如果存在则返回对现有窗口的引用,而不更改窗口的内容。
使用jQuery,我就可以添加新的内容,使有趣的链接像这样的快速收集
$('body', w.document).append(link_tag);
如果您没有保存对窗口的引用,那么就没有办法恢复它。但是,如果窗口仍然打开,并且如果加载的页面与您的页面属于同一域,则可以在其中运行JavaScript代码:
window.open("javascript:doSomething()", "windowname");
这在你的场景中是否足够取决于你想要达到的目标。
彼得是正确的:
var w = window.open("", "nameofwindow");
适用于所有浏览器,我使用它来检索先前由不同页面打开的窗口对象的引用。唯一的问题是页面的初始打开,如果弹出窗口不存在,您将获得一个空白页面的新窗口。
我尝试在另一个文档的上下文中调用Javascript函数,以检查我是否打开了一个新窗口或检索已经激活的页面。如果检查失败,我就调用window。再次打开以实际加载我的弹出内容:
var w = window.open("http://mydomain.com/myPopup", "nameofwindow");
希望对你有帮助。
不可能。该windowName只是在链接/表单的target="..."
中使用,或者在另一个window.open
调用中再次使用相同的名称,以在该窗口中打开一个新的url。
尝试打开该窗口的名称,但URL是"再次,检查它是否是一个空白窗口。如果它是开着的,那么你会得到窗户;如果没有,则会打开一个新窗口,您需要将其关闭。在localStorage中添加子节点将有助于防止打开新的空白窗口。
请查看我的代码https://github.com/goldentom66/ParentChildWindow
对不起,我发布晚了,但如果你仍然有其他窗口打开,他们在同一域,你可以运行,在第一个窗口:
function getReference(w) {
console.log('Hello from', w);
}
第二个窗口:
window.opener.getReference(window);
恐怕没有办法像windows['windowname']
那样。在window.open()中分配的'windowname'可以作为<a target="windowname" [...] >
- 从另一个窗口访问document.getElementById
- 从子弹出子窗口访问变量
- 如何从Chrome扩展程序的弹出窗口访问后台页面中的对象
- 如何防止 iframe 访问父窗口,但允许父窗口访问 iframe 文档
- 从父窗口访问 iframe 中的 DOM 附加函数
- 从子窗口访问父 URL 时出现问题
- 如何通过javascript从父窗口访问子窗口
- 如何从父窗口访问子窗口 URL
- 从 HTTPS 父窗口访问 iframe 中的 HTTP
- 使用Jquery从iframe内的子窗口访问父窗口滚动事件
- 从一个窗口访问其他选项卡
- 如何在弹出窗口刷新后从父窗口访问弹出DOM
- 从子窗口访问父窗口的角度作用域
- 从弹出窗口访问表行
- Web应用chrome, javascript,添加函数到子窗口,从父窗口访问它们
- 创建一个cookie,通过域B中的弹出窗口访问域a
- 从主窗口访问iframe内部属性
- jQuery多窗口访问和处理程序
- Javascript-从子窗口访问全局变量
- javascript, iframe, security - 从父窗口访问 js 函数时权限被拒绝