Gmail Javascript букмарклет - PullRequest
1 голос
/ 08 апреля 2009

Если я загружаю это в новую вкладку (FF3), это работает. Если я загружаю его в текущую вкладку, он просто печатает URL.

Я думаю, что это действительно вопрос загрузки в существующую вкладку 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:

когда я удаляю лишние пробелы из этого ответа и преобразую необходимые пробелы в "% 20" (кодировка URL), он ничего не делает:

 /* 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 ]

3 голосов
/ 08 апреля 2009

То, что вы хотите, выглядит примерно так:

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 возвращает день недели!

0 голосов
/ 08 апреля 2009

Лучше использовать window.location.href вместо document.location

...