一、問題
谷歌的kaptcha驗證碼模塊,在火狐瀏覽器和ie瀏覽器中,沒有辦法實現點擊驗證碼圖片就刷新的功能。
當我們給驗證碼綁定單擊事件時,代碼如下:
window.onload = function(){ document.getElementById("code_img").onclick = function(){ this.src = "/kaptcha.jpg"; } }
二、解決方法,代碼如下
window.onload = function(){ document.getElementById("code_img").onclick = function(){ this.src = "/kaptcha.jpg?t=" + new Date().getTime(); } }
如果 【new Date() 】后面不加 【.getTime()】也能解決問題,但是你會發現點擊刷新的時候沒那么順暢。加上之后就會順暢無比。
三、原因
瀏覽器為了讓請求響應速度更快,就會將每次請求的內容緩存到客戶端瀏覽器上(內存或硬盤中),再次訪問時發現請求是一樣的,便直接去調用這個緩存下來的值。
我們用第一次寫的代碼,每次請求的參數都是一樣的,所以瀏覽器就直接去調用第一次的值了,所以無法實現功能。
解決方法只要讓每次發的參數不一樣就好了,想來想去也就只有時間是每一秒都不一樣的。
昨晚寫着寫着停電了,沒來的及更新。