今天發現一個小菜鳥的問題,點擊登錄時,沒法彈出登陸框,firebug調試報錯“TypeError: window.open is not a function”,一直很納悶,這明明是javascript方法函數,怎麼說不是一個函數呢。對js文件全局搜索window.open,沒有哪裏重新定義啊,再搜搜頁面源碼“open”,是的,open被定義爲一個變量,而且沒用var聲明。
$(function(){
open = true;
……
}
將open變量用var聲明,問題就解決了。
總結:在正常情況下,window.open是一個函數。所以你可能已經在代碼中的其他位置重新定義了它,最有可能是定義了一個變量open,沒有用var聲明。
> window.open
function open(){[native code]}
> open ="test"
"test"
> window.open
"test"