开发者

window.open invalid argument error

So I keep getting an invalid argument erro开发者_高级运维r whenever I try to run this script. The error occurs at window.open(url, name, features); Unfortunately I don't know how to fix this. Any ideas?

Common-Utilities.js (where the problem is coming from - line 4)

var wm = new function WindowManager() {
    this.open = function (url, features) {
        var name = this.getName(url);
        var handle = window.open(url, name, features);
        handle.focus();
        return handle;
    };
    this.getName = function (url) {
        name = getAbsolutePath(url);
        return name.replace(/[:.\+\/\?\&\=\#\%\-]/g, "_").toLowerCase();
    };
    var getAbsolutePath = function (url) {
        var a = document.createElement('a');
        a.href = url;
        return a.href;
    }
};

openPopUp.js

function openPopup(url, width, height) 
{   
    if (width == -1) width = 710;
    if (height == -1) height = 500;

    var left = (window.screen.availWidth - width) / 2;
    var top = (window.screen.availHeight - height) / 2;

    if (window.screenLeft>window.screen.availWidth)
    {
        left = left + window.screen.availWidth;
    }

    // open url in new browser window
    var handle = wm.open(url, 'location=0, menubar=0, resizable=1, scrollbars=1, status=0, toolbar=0, width=' + width + 'px, height=' + height + 'px, top=' + top + 'px , left=' + left + 'px');

    //tile the windows so user can tell a new window has been opened
    if (document.body.clientHeight==height)
    {   
        var metricTop=10;
        var metricLeft=10;
        var thisTop=self.screenTop+metricTop;
        var thisLeft=self.screenLeft+metricLeft;
        if (thisTop<0) thisTop=0;
        if (thisLeft<0) thisLeft=0;
        handle.moveTo(thisLeft, thisTop);
    }

}

function popOutOrIn(url, title, width, height, popOut) {
    if (width == -1) width = 710;
    if (height == -1) height = 500;

    if (popOut === 'True') {
        openPopup(url, width, height)
    }
    else {
        window.top.popUpRadWindow(url, title, width, height);
    }
}


We have the code... here is the fix:

 var handle = wm.open(url,'I want a name!', 'location=0, menubar=0, resizable=1, scrollbars=1, status=0, toolbar=0, width=' + width + 'px, height=' + height + 'px, top=' + top + 'px , left=' + left + 'px');


The name argument can not have a space in it so the regular expression needs \s

this.getName = function (url) {
    name = getAbsolutePath(url);
    return name.replace(/[:.\+\/\?\&\=\#\%\-\s]/g, "_").toLowerCase();
};
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜