【发布时间】:2009-12-02 20:23:43
【问题描述】:
我有父浏览器窗口 P 。单击按钮时,将打开一个新的浏览器窗口 WIN-A。 然后再次按下相同的按钮,它应该读取 WIN-A 窗口的标题并打开 WIN-B
如何使用 Javascript 实现这一点?
提前致谢
【问题讨论】:
标签: javascript
我有父浏览器窗口 P 。单击按钮时,将打开一个新的浏览器窗口 WIN-A。 然后再次按下相同的按钮,它应该读取 WIN-A 窗口的标题并打开 WIN-B
如何使用 Javascript 实现这一点?
提前致谢
【问题讨论】:
标签: javascript
给定:
var myWindow = open("foo.bar");
旧方法:更改窗口对象的name属性:
myWindow.name = "...";
// in foo.bar:
setInterval(someFunctionToCheckForChangesInName, 100);
HTML5方法:调用window对象的postMessage方法:
myWindow.postMessage("...", "*");
// in foo.bar:
(window.addEventListener || window.attachEvent)(
(window.attachEvent && "on" || "") + "message", function (evt) {
var data = evt.data; // this is the data sent to the window
// do stuff with data
},
false);
【讨论】:
.call(the_object_that_is_supposed_to_be_the_parent, args) 不是window 的属性,请不要忘记使用它。
最近刚问了一个类似的问题:
堆栈溢出问题:Quickest way to pass data to a popup window I created using window.open()?
以此为基础(并且如果 Parent 和 WIN-A 在同一个域中):
// Put outside click handler
var winA = null;
// Put inside click handler
if(!winA){
// Store the return of the `open` command in a variable
var winA = window.open('http://www.mydomain.com/page1');
} else {
var title = winA.document.title;
// Do something with title
var winB = window.open('http://www.mydomain.com/page2');
}
【讨论】:
当您调用 window.open 时,它会返回对新打开的窗口的引用。您可以将打开的窗口的引用存储在一个数组中,然后在需要打开另一个新窗口时迭代该数组。
加布里埃尔
【讨论】: