1. 程式人生 > >Google瀏覽器外掛之快閃記憶體過濾器

Google瀏覽器外掛之快閃記憶體過濾器

  一件很有意思的事情引發的無聊嘗試。

  部落格園有個很有趣的功能,就是快閃記憶體,翻閱到07年園長對快閃記憶體的定義:

     

  記錄一閃而過的想法,高興或者不高興都可以發一下。我用這個一直以來的想法就是,想到點啥發點啥,順便看看別人發的啥。但是.....唔......有的人可能言論過激,引起他人不適,於是就開撕了,這樣的場景屢見不鮮,場面之激烈堪稱一場大戲~~ 

  於是就有園友期望可以出個遮蔽功能,不喜歡的人直接在自己的列表裡pass掉。

  其實吧,我覺得,有時候沒有必要去和別人爭吵,看不慣就看不慣,就當個笑話就好。

  當然了,都是程式設計師,何必增加園子里程序員的工作量呢,哈哈你說是不是。可能有的人就要說了,不就是個遮蔽功能嘛,很複雜嗎?咦,這種場景是不是像極了網際網路公司某些產品的口頭禪。

  以上只是個人觀點,言歸正傳請看下面正文。


  哈哈,鋪墊完了,上乾貨了,為了解決上述問題,之前我寫了一個js指令碼,F12以後在控制檯執行, 即可清除指定人的快閃記憶體,但是這種方式多有不便,每次得F12開啟瀏覽器控制檯,不然就不行。這個操作太麻煩了,直到今天,一個快閃記憶體園友提出了一個很棒的想法,寫個瀏覽器外掛!

  

  這是一個建設性的建議,當即我就開始動手了,搜尋如何寫外掛,清除人的快閃記憶體指令碼我有了,差的只是如何利用外掛去執行我的JS程式碼。

  https://www.cnblogs.com/luffystory/p/9190444.html

  上面這個部落格是我找到的入門教程,看懂基本操作之後我改了改,寫入了自己的JS就完事了。

  步驟如下:(以下所有檔案都在某個建好的資料夾中)

  1.新建manifest.json檔案,寫入如下內容:

{
  "manifest_version": 2,
  "name" : "快閃記憶體過濾器",
  "description" : "不喜歡的人過濾掉就好啦~~",
  "version": "1.0.0.0",
  "content_scripts" :[
    {
      "matches" : ["*://ing.cnblogs.com/*"],
      "js" : ["jquery-3.3.1.min.js","main.js"]
    }
  ]
}

  (引數詳解看這個 https://www.cnblogs.com/GoCircle/p/9332836.html )

  這裡是指簡單的demo,引數只寫了需要的幾個,裡面指定了外掛作用的域名,以及需要使用的JS,因為平時自己習慣寫JQ,mian.js是JQ寫法,所以引入了JQ檔案。

  main.js裡面內容如圖:

  

  裡面測試人員01、測試人員01、測試人員03寫成需要遮蔽的暱稱即可。

  外掛資料夾最終的檔案截圖如下:

  

  除了JQ從網上下載,其他兩個都是新建的。注意檔案的編碼格式為Utf8。

  寫好了就開始用了!開啟Google的擴充套件程式,點選載入已解壓的擴充套件程式:

  

  按下圖所示操作,新增一個資料夾:

  

  新增以後是這樣的:

  

  擴充套件程式裡面已經有我們新增的外掛啦~~~ 預設是啟用的!(對了,需要注意的是,開啟瀏覽器的開發者模式才能新增外掛喲)

  最後,如圖檢驗成果!F12只是為了看日誌,關掉以後外掛依然有效,目前我設定的是載入清除一次,然後每2秒再定時清除一次,因為點“全站”的時候,下面JS是非同步載入的,頁面不會重新整理,所以需要定時再清一下dom。

   

 

   這個是GIithub原始碼地址 https://github.com/lovemoqing/IngFilter,其實就是一個簡單的檔案.... 後續我再看有木有可以完善的地方。

   不想手動建檔案的小夥伴就去下載吧,然後把mian.js裡面的暱稱改成自己想遮蔽的即可。

 

   Remarks:

   1.mian.js裡的暱稱是寫死的,每次改的話不方便,需要重新載入外掛,其實我可以寫個api,去調取介面獲得需要清除的名單,時間關係暫時寫死。

   2.目前根據暱稱清除的,但是暱稱會存在經常修改的情況,導致不準,如果採用部落格地址名的話,相對準確一些,但是部落格地址名也是可以申請修改的,所以就不搞那麼複雜了。

 

   後記:這個只是為了練手,試試外掛怎麼寫,如有不適敬請諒解,我寫這個並不是放大矛盾,而是希望存在矛盾的園友可以化干戈為玉帛,如果實在不能,就用外掛遮蔽一下。