Добавьте закладку, которая представляет собой только JavaScript, а не URL-адрес.
-
08-06-2019 - |
Вопрос
Я думаю, что причина, по которой я не могу этого сделать, в том, что это может быть огромная дыра в безопасности, но вот...
Я хочу иметь закладку в своем браузере (желательно FF3), которая представляет собой всего лишь фрагмент кода JavaScript.Он просто создаст URL-адрес на основе текущей даты, а затем выполнит window.location = для этого URL-адреса.
Я знаю, что я мог бы создать страницу, сохранить ее на своем локальном компьютере и просто ссылаться на нее таким образом, но мне просто интересно, можете ли вы обойти этот шаг и на самом деле сделать так, чтобы «местоположение» закладки было просто JavaScript.Я мог бы поклясться, что это было возможно много лет назад, но сейчас я не могу найти ничего, что говорило бы мне об обратном.
Решение
То, что вы хотите, это букмарклет их легко создать, и они должны работать в большинстве основных браузеров.
Редактировать:Переполнение стека, похоже, не позволяет создавать букмарклеты в контексте сайта. По сути, вы можете создать новую закладку и ввести следующее в поле местоположения.
javascript:window.location='http://www.google.com/search?q='+Date()
чтобы получить букмарклет, который ищет в Google текущую дату.
Другие советы
Стоит отметить, что вы также можете поместить это в оболочку функции.Имранамаджид прекрасно это нам проиллюстрировал...но, видимо, я слишком новичок на сайте, чтобы размещать свой пост.:П
так для ясности:
javascript:(function(){
location.href = location.href + "#";
})();
(возврат каретки не повлиял на производительность в Chrome и IE)
Одна небольшая загвоздка. ИЕ может справиться только с 508 URL-адрес символа в этом формате.Если вы сохраните его в IE с URL-адресом, превышающим этот, он будет обрезан без предупреждения и, следовательно, не удастся.
Если вам нужен действительно сложный сценарий, вам нужно будет использовать «размещенный» букмарклет, где у вас есть короткая закладка, которая вставляет тег сценария в страницу для «вызова» вашего размещенного букмарклета.
Это не так приятно и портативно, но это единственный обходной путь.
Google закладка
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)})();
Ну, я только что создал закладку в FF3, вернулся, обновил ее и добавил следующий тест:
javascript:alert('Wacky%20test%20yo');
И вот, после сохранения и загрузки я смог получить предупреждение.
Я уверен, что вы сможете придумать что-то подобное для своих нужд.