IE浏览器引入js失败


归根结底是js语法错误,要仔细检查js是否有错(例如函数的参数中是否有没有使用的参数)


事情起因

今天课程汇报,在教室电脑展示时,网页只能在部分页面正常显示,部分页面显示不正常。手机尝试也是如此。
于是今晚回到实验室我花了5个小时搞明白这个道理。在此分享一下。

问题:IE浏览器获取cookie失败

我在window.onload()中调用了获取cookie的函数,用来验证用户是否登录,但发现在部分页面可以获取,其他页面不能获取,怀疑cookie获取失败,于是查阅了很多资料,但是为什么只是在部分页面获取失败呢???为什么在chrom浏览器中可以获取呢???
于是我尝试在window.onload()中将页面元素改变(手机中看不到console),根本没有变化。
那么问题来了,请看下面。

问题:window.onload()没有成功调用

网上竟然有很多像我一样查阅window.onload为什么在IE中没有调用成功的,我本以为这就是错误的根源了。我甚至发现,把那一小段代码移植到html中,发现可以成功执行(下面会讲为什么可以成功执行)。
但是我并不想一整段js放到html中,于是我就想,在html中加一个按钮,点击按钮触发js的一个函数,看看是否可以执行,竟然发现不能执行!!!!!!
也就是说在IE浏览器中,我的js根本没有引入进来!!!那么为什么有的界面可以引入进来呢??
我又在网上查阅了很多博客,直到我看到一个,“IE浏览器不能加载js都是js不够标准的问题,chrom会自动修复js中不标准的,而IE不会”的说法。

IE浏览器引入js失败

IE浏览器只能执行格式完全正确的js,chrom对码农很宽容的,出现了一点小错误并不会报错,而且还会自动修复。但是IE则是很认真的,他认为码农不能犯错,于是我仔细的检查了我的代码,发现有好几个没写分号的地方,但这好像不影响,直到我试着注释掉绝大部分代码,发现可以引用,慢慢的解开其他的注释,找到了错误原因。如图!

ie不支持javascript批处理 ie浏览器不支持js_cookie

删掉函数调用中多余的参数就好了!

我后来又发现不是那个原因

而是js赋初始值的方式与c不同,请看下面链接