window.open()对象有一些时髦的参数列表...
有没有办法像window.open({options ..});
那样做思想?
答案 0 :(得分:2)
您可以将options
作为网址参数传递:
window.open( myURL + "/?options=" + JSON.stringify(options) );
答案 1 :(得分:2)
该语言没有内置此类设施。
但是,自己写一个很容易 例如:
function popup(url, name, options) {
if (arguments.length === 2) {
options = name;
name = options.name;
}
var features = false;
for (var key in options) {
if (!options.hasOwnProperty(key)) continue;
if (key === "name") continue;
if(features)
features += ",";
features += key + "=";
if (!options[key])
features += "no";
else if (options[key] === true)
features += "yes";
else
features += options[key];
}
return window.open(url, name, features);
}
答案 2 :(得分:2)
以及
function newWindow(options) {
var opts = [], keys = ['height', 'width', 'scrollable', /* all those options */];
for (var i = 0; i < keys.length; ++i) {
if (keys[i] in options)
opts.push(keys[i] + '=' + options[keys[i]]);
}
return window.open(options.url, options.name, opts.join(','));
}
答案 3 :(得分:1)
没有。这是一个用javascript调用的dom函数。
在任何情况下,'选项对象'策略实际上只是在JSON的概念中得到了很好的使用,DOM规范在一段时间之前就已经存在了。
如果你想要一个开窗器助手,你可以用参数的字段构建一个JS对象,并覆盖toString()。
答案 4 :(得分:1)
不,但你可以轻松编写自己的包装。
答案 5 :(得分:1)
我不这么认为,因为这些功能是以逗号分隔的窗口功能列表
来自 MDC
var WindowObjectReference = window.open(strUrl,
strWindowName
[, strWindowFeatures]);
没有什么可以阻止你写一个包装器,虽然它接受一个对象然后用适当的参数调用window.open()
答案 6 :(得分:1)
您可以创建自己的函数来解析JSON对象,并根据解析调用具有特定参数的window.open()函数吗?