在一个函数中,我有一行代码打开一个窗口,同时从函数自己的参数(u.n)或函数中创建的变量中绘制参数。
这在脚本中运行良好。
win2 = window.open(u, n, 'width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop + ', ' + tools);
由于这在脚本中被调用了几次,但是作为win3,win4等,为了减少代码,我想把每次都相同的参数放入变量中,每次都使用它。 / p>
myparameters = u + ',' + n + ',width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop + ', ' + tools;
win3 = window.open(myparameters);
我尝试过没有太多运气,可以这样做吗?
感谢。
答案 0 :(得分:2)
是的,您可以在某种程度上将其包装在函数调用中。我通常做的是拥有一个实用功能,我可以随时调用它。
这样的事情:
popOpen: function (url, target, height, width) {
var newWindow, args = "";
args += "height=" + height + ",width=" + width;
args += "dependent=yes,scrollbars=yes,resizable=yes";
newWindow = open(url, target, args);
newWindow.focus();
return newWindow;
}
您可以通过将参数设置为以下对象来进一步减少参数:
popOpen: function (params) {
var newWindow, args = "";
args += "height=" + params.height + ",width=" + params.width;
args += "dependent=yes,scrollbars=yes,resizable=yes";
newWindow = open(params.url, params.target, params.args);
newWindow.focus();
return newWindow;
}
你可以这样称呼它:
var param = { url: '...', height: '...', width: '...' };
popOpen(param);
或者,
var param = new Object;
param.url = '...';
param.height = '...';
popOpen(param);
答案 1 :(得分:1)
你的尝试方式是不可能的。你可能想这样做:
var myparameters = 'width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop + ', ' + tools;
win3 = window.open(u, n, myparameters);
答案 2 :(得分:0)
您在函数调用中缺少一些其他参数:
var myparameters = 'width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop + ', ' + tools;
win3 = window.open(u, n, myparameters);
^ ^ ^
//Here you are passing parameters