window.open() 对象有一些时髦的参数列表......
有没有办法做类似 window.open({options..});
想法?
window.open() 对象有一些时髦的参数列表......
有没有办法做类似 window.open({options..});
想法?
options
您可以作为 URL 参数传递:
window.open( myURL + "/?options=" + JSON.stringify(options) );
该语言没有内置这样的工具。
但是,自己编写一个相当容易。
例如:
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);
}
好
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(','));
}
不,那是一个用 javascript 调用的 dom 函数。
在任何情况下,“选项对象”策略实际上只是在 JSON 的概念中得到如此广泛的使用,而 DOM 规范早于该概念一段时间。
如果你想要一个开窗器助手,你可以构建一个带有参数字段的 JS 对象并覆盖 toString()。
不,但是您可以很容易地编写自己的包装器。
我不这么认为,因为这些功能是以逗号分隔的窗口功能列表
来自MDC
var WindowObjectReference = window.open(strUrl,
strWindowName
[, strWindowFeatures]);
没有什么能阻止你编写一个包装器,尽管它接受一个对象然后window.open()
用适当的参数调用
您可以创建自己的函数来解析 JSON 对象并根据解析调用具有特定参数的 window.open() 函数吗?