我打开一个关于超链接的新窗口。
问题: 在最小化窗口之后,如果我单击超链接,则应该打开相同的窗口(在Chrome最小化窗口中将打开)。但这并不是在firefox和IE中发生的。任何人都可以帮忙。
<html>
<head></head>
<body>
<p><a href="http://www.w3schools.com/html/" onclick="window.open('http://www.w3schools.com/html/', 'newwindow', 'width=1500, height=900'); return false;">Visit our HTML tutorial</a></p>
</body>
</html>
答案 0 :(得分:0)
window.open允许您为弹出窗口指定唯一标识符;这允许您始终在同一弹出窗口中打开多个链接。 如果您在不同的链接上使用不同的标识符,它应该打开多个弹出窗口。
// making x=3 into {x: 3}
function serialize(args) {
var obj = {};
var noWhiteSpace = new RegExp(" ", "g");
args = args.split(",");
args.forEach(function(arg) {
arg = arg.split("=");
var key = arg[0].replace(noWhiteSpace, "");
obj[key] = arg[1];
});
return obj;
}
function foo(x=5, y=7, z='foo') {}
// converting the function into a string
var fn = foo.toString();
// magic regex to extract the arguments
var args = /\(\s*([^)]+?)\s*\)/.exec(fn);
//getting the object
var argMap = serialize(args[1]); // {x: "5", y: "7", z: "'foo'"}
答案 1 :(得分:0)
如果使用了strWindowFeatures参数且未定义任何尺寸要素,则新窗口尺寸将与最近渲染的窗口的尺寸相同。
您可能想查看此链接 window.open web api for mozilla
答案 2 :(得分:0)
参数列表中唯一ID的概念根本不适用于另一个答案中的建议。
您需要一个功能,以便在IE和FF中执行您需要的操作。诀窍是获取一个函数来查看它是否已经打开过一个窗口,如果有的话就什么都不做。
<script>
var opened = false;
function openWindow(){
if (!opened) {
w = window.open('', 'test', 'width=1500, height=900');
w.location = "http://www.google.com";;
w.onload = function() {
w.onunload = function() {
opened = false;
};
};
opened = true;
}
}
</script>
我正在使用opened
全局变量来跟踪此情况。我们设置新创建的窗口,以便在关闭时将false
设置为此变量。现在该函数可以决定是否应该真正打开一个新窗口。请注意以下几点:
我们使用新窗口的onLoad函数来设置onUnload。因为IE似乎会在加载页面后立即替换此处设置的事件处理程序。
您可以看到我们首先打开一个空白窗口,然后设置它的URL。这是因为如果来自另一个域,IE在打开新窗口时不返回任何内容。