【问题标题】:Add a bookmark that is only javascript, not a URL添加一个只有 javascript 而不是 URL 的书签
【发布时间】:2008-08-12 18:27:35
【问题描述】:

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

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

我知道我可以制作一个页面并将其保存在我的本地计算机上并以这种方式引用它,但我只是想知道您是否可以绕过该步骤并实际上拥有书签的“位置”真的只是javascript。我本可以发誓几年前这是可能的,但现在我找不到任何能告诉我的任何信息。

【问题讨论】:

    标签: javascript bookmarklet bookmarks


    【解决方案1】:

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

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

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

    获取在 google 中搜索当前日期的书签。

    【讨论】:

      【解决方案2】:

      值得注意的是,您也可以将其放入函数包装器中。 imranamajeed 为我们很好地说明了这一点......但显然我对这个网站太陌生了,无法发布他的帖子。 :P

      为了清楚起见:

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

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

      【讨论】:

      • 是的,将它包装在一个函数中可以防止返回值与当前窗口混淆。
      【解决方案3】:

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

      如果您需要一个非常复杂的脚本,则需要使用“托管”小书签,其中您有一个短书签,可将脚本标签注入页面,以“调用”您的托管小书签。

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

      【讨论】:

      • 所以这个模式是这样的:javascript:(function(){document.body.appendChild(document.createElement('script')).src='yoursite.com/js/bookmarklet.js';}) ();
      • 正确。你只需要从其他网站加载你想要的脚本内容。
      【解决方案4】:

      谷歌书签

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

      【讨论】:

        【解决方案5】:

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

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

        瞧,在我保存并加载后,我能够得到我的警报。

        我相信您可以根据自己的需要设计类似的东西。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-21
          • 2021-12-19
          • 2010-10-10
          相关资源
          最近更新 更多