今天在写一个Joomla的组件,目标是是使用VUE和ElementUI实现将本地附近同步到阿里云OSS上面。在这直接我不小心打错了一个字符,但发现这个错误却大约花了一个小时,总结一下,发现应该是不同浏览器对于JS报错的处理友好度不同导致的。

先说错误

最开始我使用的是Chrom浏览器,在JS控制台中出现红色的Unexpected token错误,截图如下:

这个错误应该很好调试,肯定是哪一个地方打错了。我按照提示,点击后面的链接,进入到错误的行数。如图:

此时系统将我定位到了一个方法,但这个方法我仔细的检查过了,没有任何的错误,并且我还重新用手打了一次代码,依然提示这个错误。

因为我使用的是VUE.js浏览器版本,对于调试不好定位错误,这个我已经有一个心里准备了。看来浏览器报错的地方不对。

更加迷离的错误

我将提示的代码方法注释掉,发现浏览器这边没有任何的变化。初步怀疑是缓存,强制刷新也没有效果。然后我将文件重命名,发现依然是这样。在浏览器的调试控制台依然提示这个错误。并且似乎我的修改并没有任何的作用。快崩溃了,我怀疑是浏览器的问题。

换firefox浏览器

使用firefox浏览器打开网页,发现依然错误,这说明不是浏览器的问题,是代码的问题。但这一次,firefox给了我有用的提示信息,如图:

这次给出了"missing:",并且没有定位错误。看到这里,我大概知道问题的所在了。应该是对象的属性打错了。果然:

uploadOss(item){
				var _this = this; //回调函数中还是会存在 this 污染的情况
				var param={
							id:item.id,
							bucket_id,_this.id
					};
				 

 在写bucket_id属性的时候,我用的是逗号不是分号。

感悟

有时候遇到js调试的,当遇到让你特别迷惑的问题时,换一个浏览器,也许会有意外的收获。

 

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前