2011-06-06 25 views
0

所以,當我嘗試運行這個腳本時,我總是收到一個無效的參數錯誤。錯誤發生在window.open(url, name, features);不幸的是我不知道如何解決這個問題。有任何想法嗎?window.open無效的參數錯誤

共Utilities.js(其中問題的根源 - 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); 
    } 
} 
+0

什麼是錯誤?你怎麼調用這個函數? – 2011-06-06 17:43:48

+0

url,名稱和特性的值是什麼? – 2011-06-06 17:44:23

+0

window.open不是一個jQuery函數 - 它是一個javascript – Hogan 2011-06-06 18:00:04

回答

1

我們的代碼......這裏是修復:

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'); 
+0

這不能解決任何問題(或者在正面上破壞任何東西)。 – Cheesel 2011-06-06 19:14:17

2

name參數不能有空格,所以正則表達式需要\s

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