Я думаю, что причина, по которой я не могу этого сделать, заключается в том, что это может быть огромной дырой в безопасности, но вот...
Я хочу иметь закладку в моем браузере (FF3, предпочтительно), которая представляет собой только фрагмент кода javascript. Он будет просто создавать URL на основе текущей даты, а затем выполнять window.location = для этого URL.
Я знаю, что могу сделать страницу и сохранить ее на локальной машине и просто ссылаться на нее таким образом, но мне просто интересно, можно ли обойти этот шаг и сделать так, чтобы "местоположение" закладки действительно было просто javascript. Я могу поклясться, что это было возможно много лет назад, но сейчас я не могу найти ничего, что говорило бы мне об этом.
Вам нужен <a href="http://en.wikipedia.org/wiki/Bookmarklet">- букмарклет их легко создать, и они должны работать в большинстве основных браузеров.
Edit: Stack overflow, похоже, не позволяет создавать букмарклеты в контексте сайта, в основном вы можете создать новую закладку и ввести следующее в поле местоположения
javascript:window.location='http://www.google.com/search?q='+Date()
чтобы получить букмарклет, который ищет в google текущую дату.
Это достойно упоминания, что Вы можете поместить это в обертку функции также. imranamajeed приятно иллюстрировал это для нас..., но по-видимому I' m слишком в новинку для места к его посту.: P
таким образом для ясности:
javascript:(function(){
location.href = location.href + "#";
})();
(переводы каретки не затрагивали работу в хроме и IE),
Одна небольшая загвоздка. IE может обрабатывать только 508 символов URL в этом формате. Если вы сохраните его в IE с URL длиннее этого, он будет усечен без предупреждения, что приведет к неудаче.
Если вам нужен действительно сложный скрипт, вам придется использовать "размещенный" букмарклет, где у вас есть короткая закладка, которая внедряет тег скрипта в страницу, чтобы "вызвать" ваш размещенный букмарклет.
Это не так красиво/портативно, но это единственный обходной путь.
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)})();
Ну, я только что создал закладку в FF3, вернулся и обновил ее и добавил следующий тест:
javascript:alert('Wacky%20test%20yo');
И вот, после сохранения и загрузки, я смог получить предупреждение.
Я уверен, что вы сможете разработать что-то подобное для своих нужд.