11:15

Тотальная неудачница и убийца жёстких дисков.
#post-id: 3455-14-58
#original-date: 10.01.2010 Sun
#original-time: 2:58 PM
#original-day:  3455
#original-host: WinXP Prof SP2 (Build 2600)

Учимся писать букмарклеты ^^ Тобышь такие элементы избранного, которые никуда не ведут, а содержат скрипт, который работает с текущей страницей. Вроде UserJS, но по требованию, например, форму заполнить.

Например, такое:



Очень важно в конце воткнуть void(0), чтобы не было перехода.

/* Тестирую пока в IE только. */

Комментарии
11.01.2010 в 07:20

Это в ИЕ? А ограничение на длину есть?
11.01.2010 в 10:10

Тотальная неудачница и убийца жёстких дисков.
По идее должно быть - IE хранит избранное в INI файлах. Ну и наверное просто есть ограничение на длину URL, но я не пробовала.
11.01.2010 в 10:18

 
в Opera/FF/MyIE такие вещи тоже работают, но обычно записываются так:
javasсript:void(function(){ /* код */ }());

^^
11.01.2010 в 10:33

Мне хватает подключаемого юзер-джавастрипта. В нем можно понаписать нужных функций, и забиндить их на нужные хоткеи, можно даже в зависимости от конкретного сайта.
11.01.2010 в 11:52

Тотальная неудачница и убийца жёстких дисков.
La personne mystique

Я прочитала уже в Википедии ^^ Правда, тот же Тумблер не ориентирован на IE, но у него сразу идёт код, без функции. А в чём смысл функции?

// Да, void() я именно там увидела.

Vault13boy

В IE?

Юзерскрипты - это хорошо, но с панель избранного их иногда удобнее вызывать ^^ Кстати, в IE есть возможность создания таких скриптов, они работают, но, правда, с костылём. И с безопасностью там порой приходится воевать.
11.01.2010 в 12:07

 
Линда Кайе, ээ... чтобы перехода не было, скрипт должен вернуть void. -> чтобы этого достичь, возвращаемое значение кастуется в void. т.е., например, document.getElementById('...').value='abc' вернет 'abc', но можно написать void(document.getElementById('...').value='abc'). -> чтобы в скрипте из нескольких строк какая-то из строк в середине не вернула свое значение (из-за исключения в следующей, например), весь код заключается в одну функцию, а вот ее результат уже кастуется в void. -> чтобы не объявлять функцию отдельно, пишется lambda-style функция и тут же вызывается.
но вообще, я пишу так, чтобы соблюсти общий стиль)
11.01.2010 в 12:21

Тотальная неудачница и убийца жёстких дисков.
Не совсем поняла, но идею ухватила ^^ Правда, исключения в коде - это вообще ужас, поскольку для их обработки места совсем мало ^^' Тоесть мне видится, что букмарклет работает по принципу "Осторожно, дрожащими руками, не дышать" ^^
11.01.2010 в 12:30

 
Линда Кайе,
Тоесть мне видится, что букмарклет работает по принципу "Осторожно, дрожащими руками, не дышать" ^^
в принципе да. но лучше, чтобы он работал немного в большем числе случаев)
у меня на работе две яваскрипт-закладки, но они не кастуют void(), потому что модифицируют адрес страницы и перезагружают ее - возвращаемое значение не выводится)
11.01.2010 в 13:05

Тотальная неудачница и убийца жёстких дисков.
в принципе да. но лучше, чтобы он работал немного в большем числе случаев)

^_^

у меня на работе две яваскрипт-закладки, но они не кастуют void(), потому что модифицируют адрес страницы и перезагружают ее - возвращаемое значение не выводится)

А для чего ты их вообще используешь? Я вот занялась чисто из-за лени, когда на тумблере надоело при перепостах в один блог тыкать по сто раз в одни и теже поля. Собственно, в посте как раз код и есть, даже сабмит нажимается.
11.01.2010 в 14:25

 
Линда Кайе,
А для чего ты их вообще используешь?
одна - для перелогинивания в дайри (просто модификация cookies и location.reload()), вторая - модифицирует URL таким образом, чтобы скрипт вывел табличку с выполненными запросами и статистикой быстродействия (в режиме отладки в моем движке есть такая опция ^^) или возвращает URL к прежнему виду)
12.01.2010 в 10:08

Тотальная неудачница и убийца жёстких дисков.
А, ясно ^^ У меня пока только устанавливаются нужные галочки, но там посмотрим, всёже для автоматизации удобно ^^
12.01.2010 в 12:07

 
кстати, если скрипт не влезет в URL или неудобно будет писать, всегда можно так...

javasсript: void(function(){ var s=document.createElement('sсriрt'); s.setAttribute('src', 'http://blabla.tld/sсriрt.js'); document.body.appendChild(s); }());
12.01.2010 в 12:32

Тотальная неудачница и убийца жёстких дисков.
О! Именно это мне и было нужно ^^ А с локального диска оно подхватится?
12.01.2010 в 12:35

 
Линда Кайе, ээ... если страничка из интернета содержит ссылки на file:///..., оно обычно рубится из соображений безопасности. (но можно кинуть скрипт на локальный http-сервер, если он имеется.) но ты лучше меня в этих вопросах разбираешься) не знаю, попробуй)
12.01.2010 в 12:43

Тотальная неудачница и убийца жёстких дисков.
но ты лучше меня в этих вопросах разбираешься)

Это ещё почему? OO'

Просто как-то не хочется в довесок к букмарклету юзерам Апач предлагать ^^
12.01.2010 в 12:45

 
Это ещё почему? OO'
э... не знаю, так сложились звезды)

Просто как-то не хочется в довесок к букмарклету юзерам Апач предлагать ^^
аа, тогда я бы не рисковал. я думал, тебе "чисто для себя")

тем более, получается в итоге почти тот же userjs...
12.01.2010 в 16:29

Тотальная неудачница и убийца жёстких дисков.
э... не знаю, так сложились звезды)

Но из нас вообще-то ты вэб-девелопер ^^'

тем более, получается в итоге почти тот же userjs...

Мне IE тянуть надо, и IEPro что-то прикручивать тоже не охота. Хотя у IE есть другой костыль ^^ Но всёже ^^