添加仅javascript的书签,而不是URL

时间:2008-08-12 18:27:36

标签: javascript bookmarklet bookmarks

我认为我不能这样做的原因是因为它可能是一个巨大的安全漏洞,但这里有......

我希望在我的浏览器上有一个书签(最好是FF3),它只是一段javascript代码。它只会根据当前日期构建一个URL,然后在该URL上执行window.location =。

我知道我可以创建一个页面并将其保存在我的本地计算机上并且只是以这种方式引用它,但我只是想知道你是否可以绕过这一步并实际上只是书签的“位置” JavaScript的。我本可以发誓这是多年前可能发生的事情,但我找不到任何能告诉我现在的事情。

5 个答案:

答案 0 :(得分:61)

您想要的是bookmarklet,它们很容易创建,并且应该适用于大多数主流浏览器。

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

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

获取一个用于搜索谷歌当前日期的书签。

答案 1 :(得分:21)

值得注意的是,您也可以将它放在函数包装器中。 imranamajeed很好地说明了对我们来说......但显然我对这个网站来说太新了。 :P

为了清楚起见:

javascript:(function(){
  location.href = location.href + "#";
})();

(回车不影响chrome和IE的性能)

答案 2 :(得分:11)

一个小问题。 IE 只能处理此格式的 508 字符网址。如果您使用长于此的网址将其保存在IE中,它将在没有警告的情况下截断,从而失败。

如果你需要一个非常复杂的脚本,你需要使用一个“托管”书签,你有一个简短的书签,在页面中注入一个脚本标签,以“调用”你的托管书签。

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

答案 3 :(得分:10)

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

答案 4 :(得分:8)

好吧,我刚刚在FF3中创建了一个书签,回过头来更新它并添加了以下测试:

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

很低,看到我保存并加载后,我能够得到警报。

我相信你可以根据自己的需要开展类似的工作。