日期:2014-05-16  浏览次数:20354 次

ie6变量函数无效,ie7、8、9可以
var setAlert = function (value) {
    alert("hey");
}
如上申明一个setAlert 函数,然后将这个函数放到比如common.js里,在相应的html页面里引用后,如果在ie6里就会提示setAlert 未定义,如果写在html页面里就好了,由此断定ie6下不能将“变量函数”(不会叫这个东东)放到js文件里,只能写到同一个html页面里。
由于手头上没有ie6,又不得不解决这个问题,特意装了虚拟机装了xp ie6环境,测试了一下还真是这样。
另外发现,如果将setAlert放入common.js里,并在html里引用,同时在html里也写上setAlert,那么html写的这个setAlert会覆盖掉common.js,即只会执行html里的这个setAlert函数

请知道的大侠也说说

------解决方案--------------------
确认 引用JS放在 head里,body前
------解决方案--------------------
另外发现,如果将setAlert放入common.js里,并在html里引用,同时在html里也写上setAlert,那么html写的这个setAlert会覆盖掉common.js,即只会执行html里的这个setAlert函数
是呀,和css式样的效果差不多...
------解决方案--------------------
经测试无此问题
自己检查下代码,以下错误会导致此情况:
1.common.js引用在后,而setAlert()执行在前
2.common.js是一个闭包环境,外部无法访问该变量
3.和第一种情况差不多,你用了seajs引入js文件,但seajs.use是异步的,无法保障后面的代码比js文件后执行