Добавьте закладку, которая является только JavaScript, а не URL - PullRequest
45 голосов
/ 12 августа 2008

Я думаю, что причина, по которой я не могу этого сделать, заключается в том, что это может быть огромная дыра в безопасности, но здесь идет ...

Я хочу, чтобы в моем браузере была закладка (предпочтительно FF3), представляющая собой лишь фрагмент кода javascript. Он просто построит URL на основе текущей даты, а затем сделает window.location = для этого URL.

Я знаю, что мог бы создать страницу и сохранить ее на своем локальном компьютере и просто ссылаться на нее таким образом, но мне было просто интересно, если бы вы могли обойти этот шаг и на самом деле «местоположение» закладки действительно JavaScript. Я мог бы поклясться, что это было возможно несколько лет назад, но я не могу найти ничего, что бы говорило мне так или иначе.

Ответы [ 5 ]

61 голосов
/ 12 августа 2008

То, что вам нужно, - это букмарклет , их легко создавать и они должны работать в большинстве основных браузеров.

Редактировать: Похоже, переполнение стека не позволяет создавать закладки в контексте сайта, в основном вы можете создать новую закладку и ввести следующее в поле местоположения

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

чтобы получить букмарклет, который ищет в Google текущую дату.

21 голосов
/ 20 июля 2011

Стоит отметить, что вы также можете поместить это в оболочку функции. imranamajeed прекрасно проиллюстрировал это для нас ... но, видимо, я слишком новичок на сайте, чтобы поднять свой пост. : P

так для наглядности:

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

(возврат каретки не влияет на производительность в Chrome и IE)

11 голосов
/ 16 сентября 2008

Один незначительный улов. IE может обрабатывать только символьные URL 508 в этом формате. Если вы сохраните его в IE с URL-адресом, более длинным, чем этот, он будет обрезан без предупреждения и, следовательно, потерпит неудачу.

Если вам нужен действительно сложный скрипт, вам нужно использовать «размещенный» букмарклет, где у вас есть короткая закладка, которая вставляет тег скрипта на страницу, чтобы «вызвать» ваш размещенный букмарклет.

Это не так хорошо / портативно, но это единственный обходной путь.

8 голосов
/ 12 августа 2008

Ну, я просто создал закладку в FF3, вернулся и обновил ее и добавил следующий тест:

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

Низкий и вот, после того как я сохранил и загрузил, я смог получить мое предупреждение.

Я уверен, что вы можете создать что-то похожее для ваших нужд.

...