Добавьте закладку, которая является только JavaScript, а не URL

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

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

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

12.08.2008 18:27:35
5 ОТВЕТОВ
РЕШЕНИЕ

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

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

JavaScript: window.location = 'HTTP: //www.google.com/search д =' + Date ()

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

63
5.09.2008 19:40:45

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

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

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

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

8
12.08.2008 18:31:11

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

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

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

11
16.09.2008 01:57:43
Таким образом, шаблон для этого выглядит примерно так: javascript: (function () {document.body.appendChild (document.createElement ('script')). Src = ' yoursite.com/js/bookmarklet.js ';}) () ;
Shermozle 28.04.2009 05:45:40
верный. Вам просто нужно загрузить содержимое сценария, которое вы хотите с другого сайта.
scunliffe 28.04.2009 17:21:02

Google Bookmark

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)})();
10
24.01.2009 20:13:48

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

Итак, для ясности:

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

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

21
20.07.2011 15:25:09
Да, оборачивая его в функцию, вы не сможете связать возвращаемое значение с текущим окном.
mb21 3.09.2013 11:31:48