下午作爲老大(他是作產品的)讓我嘗試破解一下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標籤
就是上面這種默認事件被阻止了。