chrome中的程序化书签

时间:2017-07-16 02:32:17

标签: javascript google-chrome bookmarklet

是否可以设置可以编译自己变量的书签?

例如,我想为具有以下链接的网站添加书签:

https://example.com/review?from=2017/07/16&to=2017/07/16

当我点击它时:它当前并且始终会填充该日期。

我希望它始终适合今天的日期。

因此,我想要一个可以使用javascript或任何有效方法检索最新系统日期的书签。

作为一个旁边而且非常重要,理想情况下我想要一个小小的'如果当前时间在noon之前,那么填充的日期将是昨天。智能并利用一点智能。 noon是任意的,8am或任何其他早晨时间都可以使用。

我目前唯一的想法是创建一个包含其中链接的html页面,打开页面并js修改链接onloadonclick,但我和#39; d更喜欢书签栏上的这些页面。 (我只有3个我想成立)

2 个答案:

答案 0 :(得分:1)

您可以使用localStorage来实现这一目标。根据您的浏览器选项,即使在关机后,它也可以从会话保存到另一个会话。

您可以尝试使用此演示书签(将代码粘贴到书签的网址字段中):

javascript:(function() { localStorage.setItem('lastdate', '2017/07/16'); })();

并检索数据:

javascript:(function() { alert(localStorage.getItem('lastdate')); })();

然后,当您单击书签时,您可以使用此类引擎组成另一个URL:

javascript:(function() {var dat = localStorage.getItem('lastdate'); window.open('https://example.com/review?from='+dat);})();

答案 1 :(得分:1)

如果你想打开链接https://example.com/review?from=2017/07/16&to=<TODAYS DATE>,这需要两个步骤:创建Javascript,然后将其放入书签,这两个步骤都很简单。

生成日期的代码如下:

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!

var yyyy = today.getFullYear();
if(dd<10){
    dd='0'+dd;
} 
if(mm<10){
    mm='0'+mm;
}
var date = yyyy+"/"+mm+"/"+dd;

Code found here

现在我们只是将其简化并将其放入书签中。将此代码简化为一行如下所示:

var today = new Date();var dd = today.getDate();var mm = today.getMonth()+1;var date="https://example.com/review?from=2017/07/16&to="+today.getFullYear()+'/'+((mm<10)?'0'+mm:mm)+'/'+((dd<10)?'0'+dd:dd);

现在我们删除所有var个关键字,并将其格式化为书签链接。我们还将var date=...更改为window.location=...,这将导致页面打开其生成的链接:

javascript:link=today=new Date();dd=today.getDate();mm=today.getMonth()+1;window.location="https://example.com/review?from=2017/07/16&to="+today.getFullYear()+'/'+((mm<10)?'0'+mm:mm)+'/'+((dd<10)?'0'+dd:dd);

将最后一个代码块放入一个新书签作为链接,这样就可以了!