添加仅JavaScript而非URL的书签

时间:2020-03-05 18:39:15  来源:igfitidea点击:

我以为我无法执行此操作的原因是因为这可能是一个巨大的安全漏洞,但是这里...

我想在我的浏览器(最好是FF3)上添加一个书签,但这只是一小段JavaScript代码。它只会基于当前日期构造一个URL,然后对该URL进行window.location =。

我知道我可以制作一个页面并将其保存在本地计算机上,然后以这种方式进行引用,但是我只是想知道我们是否可以绕过该步骤,而实际上使书签的"位置"仅是javascript。我本可以发誓,几年前这是有可能的,但现在找不到任何能告诉我这两种方式的东西。

解决方案

回答

我们想要的是一个易于创建的书签,应该可以在大多数主流浏览器中使用。

编辑:堆栈溢出似乎不允许在网站的上下文中创建书签,基本上,我们可以创建一个新的书签,并在位置字段中键入以下内容

javascript:window.location='http://www.google.com/search?q='+Date()

获取可搜索google的当前日期的小书签。

回答

好吧,我刚刚在FF3中创建了一个书签,返回并对其进行了更新,并添加了以下测试:

javascript:alert('Wacky%20test%20yo');

低,请注意,保存并加载后,我得到了警报。

我相信我们可以根据自己的需要进行类似的工作。

回答

一个小问题。 IE只能处理这种格式的508个字符的URL。如果将其保存在IE中,且URL的长度超过此长度,它将在没有警告的情况下截断并因此失败。

如果我们需要一个非常复杂的脚本,则需要使用"托管"书签,其中有一个简短的书签可以将脚本标签注入到页面中,以"调用"托管书签。

它不是很好/便携式,但它是唯一的解决方法。

回答

Google书签

javascript:(function(){var%20a=window,b=document,c=encodeURIComponent,d=a.open("http://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk="+c(b.location)+"&title="+c(b.title),"bkmk_popup","left="+((a.screenX||a.screenLeft)+10)+",top="+((a.screenY||a.screenTop)+10)+",height=420px,width=550px,resizable=1,alwaysRaised=1");a.setTimeout(function(){d.focus()},300)})();