gmail javascript bookmarklet

时间:2009-04-08 00:19:27

标签: javascript firefox gmail bookmarklet

如果我在新标签(FF3)中加载它,它可以工作。如果我在当前标签中加载它,则只打印网址。

我认为这实际上是在现有的gmail标签中加载它的问题。所以说,制作书签,点击一次,然后再次点击它。这似乎是重现问题的方法。

任何想法会导致什么?我可以想到一些解决方法,但我很好奇这是如何工作的。

javascript:var%20t=new%20Date(),y=t.getFullYear(),m=t.getMonth()+1,d=t.getDate();document.location.href="http://mail.google.com/mail/#search/is%3Aunread+after%3A"+y+"-"+m+"-"+d

/* same code split up for readability */
javascript:
  var t = new Date(),
      y = t.getFullYear(),
      m = t.getMonth()+1,
   /* d = t.getDay(); I actually have this correct above, but not here.. oops */
      d = t.getDate(); 
  document.location.href="http://mail.google.com/mail/#search/is%3Aunread+after%3A"+y+"-"+m+"-"+d;

任何帮助?

谢谢:)

UPDATE:

当我从this回答中删除多余的空格并将必要的空格转换为“%20”(网址编码)时,它什么都不做:

 /* this works. I was missing the final ")" altCognito wrote */
 javascript:void((function(){var%20t=%20new%20Date(),y=t.getFullYear(),m=t.getMonth()+1,d=t.getDate();window.location.href="http://mail.google.com/mail/#search/is%3Aunread+after%3A"+y+"-"+m+"-"+d;})())

我还尝试了一些分号小提琴和其他一般语法检查,但我不确定我在寻找什么。它既不作为书签或直接粘贴到地址栏(对我来说也是如此)。

2 个答案:

答案 0 :(得分:3)

你想要的是这样的东西:

javascript:void(
    (function() {
    var t = new Date(),
          y = t.getFullYear(),
          m = t.getMonth()+1,
          d = t.getDate();
      window.location.href="http://mail.google.com/mail/#search/is%3Aunread+after%3A"+y+"-"+m+"-"+d;
    })()
)

关键是空洞((function(){...你的东西在这里......})())

注意,你也想使用getDate()而不是getDay,因为getDay会返回星期几!

答案 1 :(得分:0)