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(','));
}
8条答案
按热度按时间iugsix8n1#
可以将
options
作为URL参数传递:字符串
ecr0jaav2#
这种语言没有内置的功能。
但是,自己写一个是相当容易的。
举例来说:
字符串
fzsnzjdm3#
以及
字符串
hiz5n14c4#
不,那是一个用JavaScript调用的dom函数。
在任何情况下,“选项对象”策略实际上只在JSON概念中得到了如此大的使用,DOM规范早于JSON。
你可以构建一个带有参数字段的JS对象,如果你想要一个窗口打开器助手,可以覆盖toString()。
luaexgnf5#
不,但你可以很容易地编写自己的 Package 。
gab6jxml6#
我不这么认为,因为功能是一个逗号分隔的窗口功能列表
从**MDC**
字符串
不过,没有什么可以阻止您编写一个接受对象并使用适当参数调用
window.open()
的 Package 器slwdgvem7#
你可以创建自己的函数来解析JSON对象,并根据解析结果使用特定的参数调用window.open()函数?
bnl4lu3b8#
显然这是不存在的。最简单的解决方案是将其从json转换为参数使用的格式。这里有一个简单的方法,通过使用一些全局正则表达式在一行中完成:
字符串
这适用于几乎所有的浏览器,我也在Internet Explorer 11中测试过。
一个更现代的方法是使用replaceAll:
型
此方法的浏览器支持较少,但它给出了相同的结果。