1. 程式人生 > >值得記錄的 (二)

值得記錄的 (二)

命名問題

使用 history.back(-1) 方法進行跳轉回到上一級頁面的時候,控制檯不停報錯 history.back is not a funtion 。直接輸入 history 發現 window 下的 history 被覆蓋了。導致錯誤的原因是之前寫 localStorage 歷史搜尋方法的時候用了 history 這個名稱導致把全域性 window 下 history 覆蓋。修復方法為更換 localStorage

 歷史搜尋方法中的函式名,讓其不適用全域性的 API 名。

 

防止多次快速點選觸發效果

var isRun = true
$(node).click(function() { if(isRun){ // do somethings ... isRun = false; } setTimeout(function(){ isRun = true; },2000) }) 

 

indexOf

使用 indexOf 方法搭配 navigator.userAgent 來進行瀏覽器特性檢測

navigator.userAgent
// Chrome 和 FireFox 核心
isUseChrome = navigator.userAgent.indexOf("Chrome")
isUseFirefox = navigator.userAgent.indexOf("Firefox")
if(!((isUseChrome > -1) || (isUseFirefox > -1))) { alert('你所使用的瀏覽器瀏覽效果不佳,請使用 Chrome 或 FireFox 瀏覽器。') } 

 

瀏覽器相關

遇到 360 等擁有 IE

 核心相容模式的瀏覽器的時候,加上該 meta 標籤,讓起預設進入極速模式(自動 Chrome 核心)。

<meta name="renderer" content="webkit"> 

 

事件解綁

在維護和修改該 jQuery 專案的時候,發現之前很多方法並不是只在全域性寫了一次,然後再到多個頁面上呼叫。許多方法被錯誤的寫到個很多個頁面之中,比如一些事件。這樣就導致了相當於事件被綁定了多次。使用將錯就錯的方法將每一次事件繫結之前用 unbind 進行解綁。

$("#button").unbind("click")
$("#button").bind("click", function () { // do somethings ... })