今天发现一个小菜鸟的问题,点击登录时,没法弹出登陆框,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"