window.open的target属性_blank多写了一个下划线引发的血案

564 阅读1分钟

起因

  在公司的项目中,用到了 window.open(url, '_blank') ,有天同事在测试时,点击了两次链接,突然发现第二次点击时,并没有打开新的Tab,而是将第一次打开的Tab页面重新刷新了一下。作为程序员的第六感,难道是 window.open(url, '_blank') 有Bug(根据Bug定律: 如果出现Bug,肯定是你不会用,如果不是,肯定是我用的基础库有问题,反正出现Bug肯定不是我的代码问题)

  出于对这个问题感到很疑惑,所以去翻了一下代码,初看没看出什么问题,所以就去搜索的一下 window.open 的文档,发现我把 _blank 写成了 __blank ,所以 window.open 方法把 __blank 当成了浏览器窗口的名称,第一次点击后,可以成功的把 url 加载到新的窗口,点击一次之后,不管再点击多少次,都是在第一次打开的窗口刷新,不会再打开新的窗口了。

重现过程

  1. f12 打开浏览器的控制台,输入 window.open('https://www.baidu.com', '__blank') ,可以正常打开一个窗口

0dafd876a934b4f8512559975b4d095.png

  1. 在当前浏览器控制台,再输入 window.open('https://www.baidu.com', '__blank') ,发现并没有打开新的窗口,而是在上次打开的窗口,重新刷新了页面

c3350458a44659b9f77af2e8a6ff371.png

结果

所以说如果出现Bug,99.999%的概率是代码的问题,凡事不能过于自信呀。。。

参考链接

菜鸟教程Window open方法