天天看點

本地修改js代碼并時時生效的解決辦法

  js作為用戶端語言(當然它也可以作服務端語言),非常強悍,一般情況下,我們都是在開發階段不停的改,然後上線之後就作為穩定運作的代碼。

  然而有時候可能因為js寫得有問題,導緻上線後,某些功能無法使用,這就悲催了,而且一般的公司上線應該都不會很容易。

  那麼對于這種js一類的修改,如果能在本地臨時生效,做一些緊急問題的修複,就很重要了。(我也是遇到這個坑,隻要把這次臨時問題修複,等下一個功能代碼要上線時,再修複也是可以的)

  那麼,怎樣做到本地修改js檔案,進而達到代碼運作ok的效果呢? 本文将會給出多種解決方案:

一、 使用fiddler攔截請求更改參數!!!

  如果是因為某些必要參數傳遞不對,進而導緻服務端無法正常運作,那麼我們可以直接攔截請求,修改參數,再次發送到服務端,進而規避該問題。

  這種情況一般發生在使用ajax通路服務端程式時出現,比如某個值因為某種原因,導緻js發送ajax請求時,少了某個必要參數,進而導緻服務端報參數錯誤。

  具體解決辦法就是:下載下傳并安裝http調試神器fiddler, 設定對該站點的攔截請求如: bpu http://a.com, 在攔截到後,添加該必要參數,點選繼續請求,進而達到通過服務端驗證的需求,如果要求多次操作,那麼還可以設定自動修改攔截請求參數的設定,具體方法請自行研究fiddler自動攔截請求方法。

  當然了,這種請求主要針對http協定,對于https還是顯得有些為難的,這也是為什麼https會如此受追棒的原因吧。

本地修改js代碼并時時生效的解決辦法

二、 通過使用浏覽器插件Tampermonkey,動态修改js代碼!!!

  如果需要修改處理邏輯較多,那麼,可以借助Tampermonkey插件,直接覆寫某js檔案,進而達到請求更改的處理。頁面部分處理如下:

本地修改js代碼并時時生效的解決辦法

   主要填寫需要替換的js檔案的路徑,然後寫需要覆寫的js邏輯,儲存,重新整理即可生效。

三、 直接通過控制台運作代碼,覆寫原有代碼生效!!!

  我平時主要使用控制台來計算一些自己試驗性質的代碼,但是後來我發現,這個功能完全可以覆寫到真正生産中的代碼裡去。

  比如有一個按鈕的監聽事件(假設使用jquery寫的)

$('#id').on('click', function() {
    alert(111);
 });       

  那麼,如果,如果我想改怎麼辦? 解決為,直接在控制台重新注冊該事件即可,即運作:

$('#id').off().on(function() {
     alert('my alert');
 });      

這樣,當點選該按鈕時,就會生效為後面代碼的功能了。

  注意這裡有一事件冒泡的問題,一定要先解綁事件,再注冊事件,否則會有多個事件響應。

  那麼,對于函數一類呢,則是直接以相同的函數名稱重寫方法即可,而根據js的運作原理,即會運作你後面寫的方法。

  好了,本地修改js并生效的方法,大概就說到這裡,個人感覺也夠用了。

  js作為用戶端語言确實很友善,尤其是明白了發一次上線代碼不容易之後。有時真能解燃眉之急!!!

  另作聲明: 雖然js可以友善本地更改js生效,但是這并不意味着js顯得太不安全了,因為這裡所有的操作都是以在你本機上操作為基礎前提的,也就是說你會為你所有的更改負責,而不是js為你的安全買單!

不要害怕今日的苦,你要相信明天,更苦!