iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
0
Modern Web

弄點簡單的 Chrome Extension 讓生活更方便系列 第 3

Chrome Extension 03 – 警告 facebook 待太久

  • 分享至 

  • xImage
  •  

最近 facebook 使用越來越重度的傾向,所以做了這個 Chrome Extension 過一段時間就提醒該回去工作了

先建立 manifest.json 檔案

{
    "manifest_version" :2,
    "name" : "FacebookStop",
    "version" : "1.0",
    "description" : "快去工作",
    "icons" :{
        "128" : "icon128.png",
        "48" : "icon48.png",
        "16" : "icon16.png"
    },
    "browser_action" : {
        "default_icon" : "icon16.png"
    },
    "background" :{
        "scripts" :["eventPage.js"],
        "persistent" : false
    },

    "permissions" : [
        "tabs"
    ]
}

browser_action 是因為我想要使用
chrome.browserAction.setBadgeText({text: "27"});
他可以在 icon 顯示數值
https://ithelp.ithome.com.tw/upload/images/20181018/200942239z4CHrSWbh.png

eventPage.js 檔案內容 :

使用了 onCreated、onUpdated、onActivated 三個事件檢查 url 然後把網址丟給 checkUrl 看我是不是正在瀏覽 facebook

chrome.tabs.onCreated.addListener(function ( tab ){
    checkUrl(tab.url);
});

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
        if(changeInfo.url !==undefined){
            checkUrl(changeInfo.url);
        }
}); 

chrome.tabs.onActivated.addListener(function(activeInfo) {
      chrome.tabs.get(activeInfo.tabId, function(tab){
        checkUrl(tab.url);
      });
});

然後 checkUrl 內容 -檢查 url 是否為 facebook 開頭,如果是,就設定時間,並呼叫 countDown 開始倒數

var count = 30; //計數器
var time = 30;  //所設定的時間
var myTimer;    //每秒執行一次的 function
function checkUrl(url){

        var regex = new RegExp('^https://www.facebook.com/');

        if(regex.test(url)){
            if(myTimer!== undefined){
               clearTimeout(myTimer);
            }
                count = time;
                myTimer = countDown();
            }
            else{
               if(myTimer!== undefined){
                   clearTimeout(myTimer);
                }
        }
    }

最後,countDown - 持續更新 count 並顯示,時間到的時候會彈跳視窗

function countDown(){
    count--;
    chrome.browserAction.setBadgeText({text: count.toString()});
    if(count > 0){
        myTimer = setTimeout(countDown,1000);
       
    }
    else{
        alert('你老闆在你後面,他很火!');
        count = time;
        myTimer = setTimeout(countDown,1000);
    }
    chrome.browserAction.setBadgeText({text: count.toString()});
    
 }

執行結果 :

在瀏覽 facebook 的時候,數值會持續倒數

https://ithelp.ithome.com.tw/upload/images/20181018/200942239lErrMBipp.png

時間到的時候會彈跳一個視窗告訴你該回去面對現實了https://ithelp.ithome.com.tw/upload/images/20181018/200942234ENN6ArdYG.png

感謝收看 :)


上一篇
Chrome Extension 02 – 在博客來搜尋書
下一篇
Chrome Extension 04 – ig 自動按愛心
系列文
弄點簡單的 Chrome Extension 讓生活更方便30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言