下午作为老大(他是作产品的)让我尝试破解一下kodexplorer(一个PHP作的文件管理工具),作为一名前端,彻底根本就看不懂PHP。
就在我装模做样在百无聊赖的尝试的时候,QQ闪了。点开一看,是我一大学同窗。前端
问:“为什么点击不能下载”。我下意识的让他给A标签添加一个download="true"试试。
回复:“仍是不行”bootstrap
想一想也是正常。download是HTML5给A增长的一个新属性,做用是告诉浏览器这个连接的文件如下载的方式处理,download属性的值就是文件的名称(我的理解,具体定义能够去w3c搜一搜)。但在没有这个属性以前,当A标签连接是浏览器不能直接执行或者解析的文件时,默认就会变成下载。这里连接的是一个文件,因此应该是下载。是否添加download都该是同一个效果。浏览器
如今咱们来看看。那还能有什么缘由呢?我立刻想到是js把A标签的默认事件阻止了。工具
而后我还问了问是否是标签交叉了,标签交叉不一样浏览器会有些不一样的表现,而后他告诉我并没了而且发了图片给我spa
因此我认为颇有多是JS阻止了A标签的默认行为。并告诉了他如何处理。插件
而后我俩忽然跳出了这个话题,聊了还一会以后。我问刚刚的问题解决了没有。回答没有,仍是不知道怎么弄。事件
这里我get到了一个新玩意,TeamViewer。。。我以前一直都仍是使用的QQ远程,和这个比一下真的差距太大了。连上远程以后,正好他也是用的Chrome,在Chrome浏览器里把A标签事件移除以后,果断点击有有了效果。因此确定就是事件禁止了A标签的默认行为。图片
其实那个remove我也是今天才发现的,才知道还能够这样玩。rem
最后肯定是,div标签的data-toggle="buttons"引发的,去掉buttons就恢复正常。这边想去研究一下为啥boostrap会把A标签的默认行为给禁止了,我尝试了下载了一个bootstrap引用了一下,对照他的那个结构写了标签尝试了一下,没有复现出你的那个bug。data-toggle="buttons"在boostrap官网貌似并无见过这个值,应该是引用了一些基于bootstrap的插件引发的问题。而后也就到下班的时间了,我也就没继续深究了get
总结一波,A标签点击无反应无非就是如下几种状况
标签使用不合法:href属性写错了,标签没有回之类的问题。
其它图层将A标签遮挡住了,根本点不到A标签
就是上面这种默认事件被阻止了。