1

在一个函数中,我有一行代码可以打开一个窗口,同时从函数自己的参数(un)或函数中创建的变量中提取其参数。

这在脚本中工作正常。

win2 = window.open(u, n, 'width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop + ', ' + tools);

由于这在脚本中被调用了几次,但作为 win3、win4 等,为了减少代码,我想将每次都相同的参数放入一个变量中,每次都使用它。

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

win3 = window.open(myparameters);

我试过玩这个没有太多运气,可以做到吗?

谢谢。

4

3 回答 3

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);
于 2013-10-29T13:58:39.210 回答
1

您尝试的方式是不可能的。您可能想要这样做:

var myparameters =  'width=' + w + ', height=' + h + ', ' + 'left=' + wleft + ', top=' + wtop + ', ' + tools;
win3 = window.open(u, n, myparameters);

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

于 2013-10-29T13:59:20.790 回答
0

您在函数调用中缺少一些附加参数:

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

win3 = window.open(u, n, myparameters);
                   ^  ^   ^
                 //Here you are passing parameters
于 2013-10-29T14:00:08.087 回答