window.open参数作为变量

时间:2013-10-29 13:55:23

标签: javascript variables window.open

在一个函数中,我有一行代码打开一个窗口,同时从函数自己的参数(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);

我尝试过没有太多运气,可以这样做吗?

感谢。

3 个答案:

答案 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);

小提琴:http://jsfiddle.net/aBR7C/

答案 2 :(得分:0)

您在函数调用中缺少一些其他参数:

var myparameters =  'width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop + ', ' + tools;

win3 = window.open(u, n, myparameters);
                   ^  ^   ^
                 //Here you are passing parameters