2016-10-29 50 views
-2

我正在構建Chrome擴展程序,當有人訪問特定站點時該擴展程序會重定向到網頁。但是,我希望這一天只能打開一次網頁,而不是每次打開一次。如何在Chrome擴展程序中每天只運行一次腳本

這是我使用的是什麼:

function showOnceInADay() { 
    var user = getCookie("user"); 
    if (user != "") {} else { 
     // content.js 
     window.open('http://google.com') 
    } 
} 

但是,它不工作。

這是我想要運行的代碼。

window.open ('http://google.com') 

這裏的的manifest.json文件

{ 
    "manifest_version": 2, 
    "name": "My Cool Extension", 
    "version": "0.1", 

    "content_scripts": [{ 
     "matches": [ 
      "https://www.snapdeal.com/" 
     ], 
     "js": ["jquery-3.1.1.min.js", "content.js"] 
    }], 

    "browser_action": { 
     "default_icon": "icon.png" 
    } 
} 
+0

請[編輯]這個問題要切合主題:包括** **完全[MCVE]認爲複製的問題。通常包括一個* manifest.json *,一些背景*和*內容腳本。尋求調試幫助的問題(「**爲什麼不是這個代碼工作?」)必須包括:►期望的行爲,►特定問題或錯誤*和*►在問題中重現問題所需的最短代碼**本身**。沒有明確問題陳述的問題對其他讀者無益。請參閱:「**如何創建[mcve] **」,[我可以在此處詢問哪些主題?](http://stackoverflow.com/help/on-topic)和[問]。 – Makyen

+0

如何調用'showOnceInADay()'。你定義了這個函數,但沒有任何東西表明它曾經被調用過。 – Makyen

+0

showOnceInADay()在content.js文件中 –

回答

0

假設你有jQuery的餅乾插件安裝:

function showOnceInADay(){ 
    var user = $.cookie("user"), 
     day = $.cookie("day"); 
    var d = new Date(); 
    var checkDay = d.getDate(); 
    if (user === "" && checkDay != day) { 
     // content 
     window.open ('http://google.com'); 
     $.cookie("day", checkDay); 
    } 
} 

您可以使用Date()獲取當前日期;方法,然後用當前日期進行交叉檢查。

如果它們不匹配並且用戶被定義,它將打開http://www.google.com/並將日期cookie設置爲新的日期。

希望這會有所幫助! :-)

你可以在這裏插件:jQuery Cookie

+0

儘管這可能有效,並且與OP已有的內容相一致,但從OP撰寫的內容中可以看出,使用Cookie是以前訪問尤其是從運行Chrome擴展的角度來記錄。事實上,除非目標是將該信息提供給網頁的服務器,否則使用cookie是一個壞主意,因爲它可能會干擾網站的運行。 – Makyen

+0

@Makyen我知道這個:-)然而,直到他決定提供更多的信息。這是我能做的最好的 –

+0

其實,沒有。您可以輕鬆使用Chrome擴展特定方法來存儲日期信息,以免潛在地影響OP正在討論的任何網站的操作。 – Makyen

相關問題