Chrome中的编程式书签

3

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

例如,我想要一个带有以下链接的网站书签:

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

目前当我点击它时:它当前和将来都会填充该日期。

我希望它总是用今天的日期填充。

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

顺便提一下,这不重要,理想情况下,如果当前时间在中午之前,填充的日期将会是昨天。 中午是任意的,也可以使用上午8点或其他任何早晨小时数。

我目前唯一的想法是创建一个带有链接的html页面,打开该页面并使用onloadonclick修改链接,但我更喜欢这些页面出现在书签栏中。(我只需要设置3个)


我无法想到一种内置的方法来完成这个任务,但你可以创建一个定时每24小时在你的计算机上运行的程序(使用任何通用编程语言),以更新书签文件夹中的书签URL为新日期。你需要查找Chrome在你的文件系统中存储书签文件夹的位置。 - undefined
其实,这不是一个坏主意!如果没有其他方法来实现这个目标,我可能会直接看一下(可能创建一个扩展?) - undefined
那么第一个日期是应该固定的吗,而第二个日期始终变化?还是两个日期都应该一直相同?或者第一个日期应该始终为上次书签被点击的日期? - undefined
这并不重要。它可以锁定任何东西,只要使用今天的日期(还有其他几个用于一周范围等)时需要。 - undefined
我脑海中目前唯一有效的想法是使用一个自定义构建的html主页,其中包含所有链接(假设在需要之前刷新它)。 - undefined
2个回答

3
如果您想打开链接 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;

代码在这里找到

现在我们只需将其简化并放入书签中。将此代码简化为一行,看起来像这样:

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);

将上述代码块作为链接放入新书签中,这样就可以工作了!

没错,就是这个。这正是我一直在寻找的。当别人在 Stack 上找到答案时,会让我很烦,因为相信我,我从昨晚开始就一直在做这个了,显然只是没有使用正确的搜索词。谢谢,太好了! - undefined
只是补充一下,我总是很惊讶人们能够将什么内容放入书签工具中。 - undefined
没问题!只要你知道如何格式化,你可以将任何JavaScript代码放入书签中! - undefined

1
你可以使用localStorage来实现这一点。根据你的浏览器选项,它可以在会话之间保存,甚至在关闭后也可以保存。
你可以尝试这个演示书签(将代码粘贴到书签的URL字段中):
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);})();

今天我对此进行了一些尝试,但我需要它更加实时(即提取今天的日期)。我差点做完了,我确实让它工作了,但没有完成所有所需的链接。然后Howzieky出现并发布了一个完整的解决方案。感谢您的回复(我不知道本地存储)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接