Javascript 如何在Chrome扩展中一天只运行一次脚本

Javascript 如何在Chrome扩展中一天只运行一次脚本,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我正在构建一个Chrome扩展,当有人访问特定网站时,它会重定向到网页。但是,我希望它每天只打开一次网页,而不是每次 这就是我正在使用的: 函数shownceinaday(){ var user=getCookie(“用户”); 如果(用户!=“”){}else{ //content.js 打开窗户http://google.com') } } 但是,它不起作用 这是我要运行的代码。 window.open ('http://google.com') 这是manifest.json文件 {

我正在构建一个Chrome扩展,当有人访问特定网站时,它会重定向到网页。但是,我希望它每天只打开一次网页,而不是每次

这就是我正在使用的:

函数shownceinaday(){
var user=getCookie(“用户”);
如果(用户!=“”){}else{
//content.js
打开窗户http://google.com')
}
}
但是,它不起作用

这是我要运行的代码。

window.open ('http://google.com')
这是manifest.json文件

{
“清单版本”:2,
“名称”:“我的酷扩展”,
“版本”:“0.1”,
“内容脚本”:[{
“匹配项”:[
"https://www.snapdeal.com/"
],
“js”:[“jquery-3.1.1.min.js”,“content.js”]
}],
“浏览器操作”:{
“默认图标”:“icon.png”
}
}

假设您安装了jQuery Cookie插件:

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设置为新日期

希望这有帮助!:-)


您可以在这里获得插件:

请回答主题中的问题:包括一个与问题重复的完整问题。通常,包括manifest.json、一些后台脚本和内容脚本。寻求调试帮助的问题(“为什么此代码不工作?”)必须包括:►想要的行为,►特定的问题或错误,以及►在问题本身中复制它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:“如何创建”,以及如何调用
shownceinaday()
。您定义了该函数,但没有任何迹象表明它曾经被调用过。shownceinaday()位于content.js文件中。虽然这可能会起作用,并且与OP已有的功能一致,但OP编写的内容不清楚使用cookie是否是记录前一次访问的适当方式,特别是从运行Chrome扩展的角度来看。事实上,除非目标是将该信息提供给网页服务器,否则使用cookie是一个坏主意,因为它可能会干扰网站的运行。@Makyen我知道这一点:-),但是,直到他决定提供更多信息。这是我能做的最好的了,不。你可以很容易地使用特定于Chrome扩展的方法来存储当天的信息,这样就不会潜在地影响OP所说的任何网站的运行。@Makyen我对特定于Chrome扩展的方法没有经验,我只是从JavaScript/jQuery的角度来做这件事,这是我的期望。但是,即使您不打算使用(特定于该Chrome扩展的存储位置),使用localStorage(查看网页的机器的本地)也比使用cookie(发送到服务器)要好,还有一个密钥,用于长度超过
天的信息
,这样它就不会与网页所做的任何事情发生冲突。扩展和网页是分开的。扩展不应做可能影响网页的事情,除非这是操作的意图。