Anton
Конструкцию with лучше совсем не использовать - поверь моему опыту как разработчика Pastebin Panel.
А можно поподробнее? А то у меня никаких идей, кроме создания «лишней» области видимости, нет...
Я не привык к использованию закладурок. Не помню уже точно по какой причине - скорее всего сложность отладки.
Ну, с этим все просто. Редактируется скрипт в нормальном виде, потом удаляются комментарии, пробелы, переводы строк и все это запускается черех адресную строку.
В моем конкретном случае это AkelPad + плагин Scripts + простенький скрипт
Добавлено Sun May 11 02:35:58 2008 :
P.S. Кстати, Pastebin что-то плохо переваривает регулярные выражения (в их подсветке пока что побеждает Notepad++)...
Отредактировано Infocatcher (11-05-2008 02:41:33)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Вот для примера: http://pastebin.mozilla-russia.org/91287
Спустя год, мне уже неочевидно какие поля и методы содержит PastebinRDFService. (да даже и полгода спустя, прошлым летом, было неочевидно).
Надо сверяться с idl. Если сделаю опечатку в названии метода, мне никто не скажет, что у PastebinRDFService нет такого метода, и надо будет выяснять, почему registry_file не определена. Если выявится ошибка где-нибудь на rdfService, надо будет выяснять что это такое - переменная, или поле PastebinRDFService. Ещё при именовании временных переменных в пределах with блока надо помнить о возможности коллизий с дополнительной областью видимости.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Вот для примера
И в таких случаях лучше обозвать pastebinRDFService каким-нибудь prs (var prs = pastebinRDFService;) и так дальше и обращаться? И, кстати, как определить, что «попало в переменную» – ссылка на исходный объект или значение? Т.е. не вредно ли делать штуки вида var d = document; ?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
И в таких случаях лучше обозвать pastebinRDFService каким-нибудь prs
Хотя бы так. Можно и в развёрнутом виде. В конкретном случае с pastebin panel - ещё и переработать интерфейсы компонентов - не очень удачные.
не вредно ли делать штуки вида var d = document; ?
Иногда просто необходимо.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Кнопка для Thunderbird, сохраняет выделенные сообщения в указанный каталог на диске
custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EsaveSelected%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20Cc%20%3D%20Components.%20classes%3B%0Avar%20Ci%20%3D%20Components.%20interfaces%3B%0Afunction%20getDirectory%20%28%29%0A%7B%0A%09var%20fp%20%3D%20Cc%20%5B%22@mozilla.org/filepicker%3B1%22%5D.%0A%09%09%20createInstance%20%28Ci.%20nsIFilePicker%29%3B%0A%09fp.%20init%20%28window%2C%20%22%22%2C%20fp.%20modeGetFolder%29%3B%0A%09var%20res%20%3D%20fp.%20show%20%28%29%3B%0A%09return%20fp.%20file%3B%0A%7D%0Afunction%20saveAsFile%20%28uri%2C%20dir%29%0A%7B%0A%09var%20content%20%3D%20%22%22%3B%0A%09var%20subject%20%3D%20messenger.%20messageServiceFromURI%20%28uri%29.%0A%09%09%20%20%20%20%20%20messageURIToMsgHdr%20%28uri%29.%20mime2DecodedSubject%3B%0A%09filename%20%3D%20GenerateValidFilename%20%28subject%2C%20%22.eml%22%29%3B%0A%09var%20msgService%20%3D%20messenger.%20messageServiceFromURI%20%28uri%29%3B%0A%09var%20msgStream%20%3D%20%20Cc%20%5B%22@mozilla.org/network/sync-stream-listener%3B1%22%5D.%20createInstance%20%28%29%3B%0A%09var%20consumer%20%3D%20msgStream.%20QueryInterface%20%28Ci.%20nsIInputStream%29%3B%0A%09var%20scriptInput%20%3D%20Cc%20%5B%22@mozilla.org/scriptableinputstream%3B1%22%5D.%0A%09%09%09%20%20createInstance%20%28%29%3B%0A%09var%20scriptInputStream%20%3D%20scriptInput.%20QueryInterface%28Ci.%20nsIScriptableInputStream%29%3B%0A%09scriptInputStream.%20init%20%28consumer%29%3B%0A%09try%0A%09%7B%0A%09%09msgService.%20streamMessage%20%28uri%2C%20msgStream%2C%20msgWindow%2C%20null%2C%20false%2C%20null%29%3B%0A%09%7D%0A%09catch%20%28ex%29%0A%09%7B%0A%09%09alert%28%22error%3A%20%22+ex%29%0A%09%7D%0A%09scriptInputStream.%20available%20%28%29%3B%0A%09while%20%28scriptInputStream.%20available%20%28%29%29%0A%09%7B%0A%09%09content%20%3D%20content%20+%20scriptInputStream.%20read%20%28512%29%3B%0A%09%7D%0A%09var%20subject%20%3D%20msgService.%20messageURIToMsgHdr%20%28uri%29.%0A%09%09%20%20%20%20%20%20mime2DecodedSubject%3B%0A%09var%20fileName%20%3D%20GenerateValidFilename%20%28subject%2C%20%22.eml%22%29%3B%0A%09var%20file%20%3D%20dir.%20clone%20%28%29%3B%0A%09file.%20append%20%28fileName%29%3B%0A%09var%20foStream%20%3D%20Cc%20%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D.%0A%09%09%20%20%20%20%20%20%20createInstance%20%28Ci.%20nsIFileOutputStream%29%3B%0A%09var%20flags%20%3D%200x02%20%7C%200x08%20%7C%200x20%3B%0A%09foStream.%20init%20%28file%2C%20flags%2C%200664%2C%200%29%3B%0A%09foStream.%20write%20%28content%2C%20content.%20length%29%3B%0A%09foStream.%20close%20%28%29%3B%0A%7D%0Avar%20dir%20%3D%20getDirectory%20%28%29%3B%0Aif%20%28%21dir%29%0A%09return%3B%0Avar%20messageArray%20%3D%20GetSelectedMessages%28%29%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20messageArray.%20length%3B%20i++%29%0A%09saveAsFile%20%28messageArray%20%5Bi%5D%2C%20dir%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%3C/custombutton%3E
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Помнится, был способ с помощью кнопки, но держать лишний элемент интерфейса, по-моему, неудобно... В общем, как мне кажется, стоит добавить в Thunderbird пункт меню для добавления кнопки из кода вида custombutton://...
P.S. Ты в аське, указанной в профиле, бываешь?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Помнится, был способ с помощью кнопки,...
Чёрт его знает, за всеми кнопками не уследишь - мне не попадалась, это я точно знаю, иначе бы не стал писать, взял бы готовую.
P.S. Ты в аське, указанной в профиле, бываешь?
Я последние год-полтора im практически не пользуюсь. Если надо - давай договоримся о времени.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
иначе бы не стал писать, взял бы готовую.
Я это к тому, что удобно было бы добавить функционал простого добавления кнопок в виде «URL'а» в расширение.
Если надо - давай договоримся о времени.
Ну вот, теперь мне мои вопросы кажутся не сильно важными. В ближайшие пару часов я в сети, хотя можно воспользоваться и иными средствами.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
добавить функционал простого добавления кнопок в виде «URL'а» в расширение
Ага, понял. А "Клонировать" -> "Обновить" ? Для пункта меню надо будет делать дополнительный контроллер, проверяющий содержимое буфера обмена. Не то, чтобы лень - сомнения в целесообразности.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Друзья!Следующая ситуация.Есть кнопка из гугля,для перевода,на яве
javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=ru&langpair=auto|en&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=ru&langpair=auto|en&tbb=1&ie='+e;};
Но она скорее не кнопка,а ссылка.Сидит в закладках.Может кто сообразит,как из нее сделать нормальную кнопку,для панели инструментов.У меня мозгов не хватает.
Добавлено Tue May 20 16:52:56 2008 :
javascript:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=ru&langpair=auto|en&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=ru&langpair=auto|en&tbb=1&ie='+e;};
Добавлено Tue May 20 16:53:37 2008 :
Блин смайлика тута нетю хад такой.
Отсутствует
Проще всего записать
потом текст закладурки и, наконец поставить закрывающую кавычку.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
сделал так но не пашет.Что еще добавить треба?Или вообще не так сделал?
getBrowser (). contentDocument. location. href = "javascript:var t(window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&hl=ru&langpair=auto|ru&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&hl=ru&langpair=auto|ru&tbb=1&ie='+e;};
Нет,не получаеться у меня,правильно показать вам
Отредактировано vv07 (20-05-2008 17:46:31)
Отсутствует
В конце должна быть кавычка. То есть, пишем текст
а между кавычками вставляем текст закладурки
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Супер!Респектуха вам гуру.
Может еще подскажете,как делать в посте,окошко с кодами.Хочу поделиться кнопарями с народом.Зачем лишнии расширения ставить,когда можно кнопками поделиться и заюзать их.
А то мну не умеет Усе,не надо.Спасибки вам,за правку поста.Просмотрел и сам понял как.
Отредактировано vv07 (21-05-2008 02:20:12)
Отсутствует
как делать в посте,окошко с кодами
[code]code[/code]
А чем кнопка лучше закладок ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А чем кнопка лучше закладок ?
Тем, что можно сделать открытие в новой вкладке
Перевести через Google:
custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGoogle%20Translate%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20t%20%3D%20content.getSelection%28%29.toString%28%29%3B%0Avar%20c%20%3D%20content.document.characterSet%3B%0Avar%20loc%20%3D%20content.location.href%3B%0AgetBrowser%28%29.loadOneTab%28%0A%09t%0A%09%09%3F%20%22http%3A//translate.google.com/translate_t%3Ftext%3D%22%20+%20t%20+%20%22%26hl%3Dru%26langpair%3Den%7Cru%26tbb%3D1%26ie%3D%22%20+%20c%0A%09%09%3A%20/%5Ehttps%3F%3A%5C/%5C//i.test%28loc%29%0A%09%09%09%3F%20%22http%3A//translate.google.com/translate%3Fu%3D%22%20+%20escape%28loc%29%20+%20%22%26hl%3Dru%26langpair%3Den%7Cru%26tbb%3D1%26ie%3D%22%20+%20c%0A%09%09%09%3A%20%22http%3A//translate.google.com/translate_t%3Fhl%3Dru%22%2C%0A%09null%2C%20null%2C%20null%2C%20false%20/*%20load%20in%20background%20*/%2C%20false%0A%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%3C/custombutton%3E
(http://pastebin.mozilla-russia.org/91351)
Отредактировано Infocatcher (21-05-2008 08:53:13)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
К сожалению,ваша кнопка не работает.Сдесь я выложил рабочие
http://forum.mozilla-russia.org/viewtop … d=9849&p=7
Добавлено Wed May 21 10:20:38 2008 :
Anton
Уважаемый гуру.Так как,я не силен в кодах и сам могу,с бооооооольшим трудом,собрать ченить простое,нельзя ли сделать,своего рода,собрание разных,готовых кнопок?Типа текстового файлика.
Отсутствует
Infocatcher
Тем, что можно сделать открытие в новой вкладк
Это понятно, что функционал может быть шире. Я закладурками не пользуюсь, но, их ведь легче сделать, если они уже есть готовые.
vv07
Если что,надеюсь мона обратиться за помощью?
Можно, конечно. Если что, я сейчас разработчик этого расширения, так что деваться мне некуда. Правда, положительный результат заранее обещать не могу.
К сожалению,ваша кнопка не работает.
Может быть, кнопка была установлена неправильно ? Код Infocatcher'а надо поместить в адресную строку браузера и нажать enter. Потом "вытащить" установленную кнопку из диалога настройки панелей инструментов.
Или, скопировав код в буфер обмена, клонировать и обновить уже существующую кнопку (в контекстном меню кнопок есть соответствующие пункты).
Уважаемый гуру.
Мне это не нравится. Так что будьте любезны, без лишних церемоний.
...нельзя ли сделать,своего рода,собрание разных,готовых кнопок?Типа текстового файлика.
Не понял, о чём речь. Если нужны готовые кнопки, то можно найти в этой теме, на офф. сайте расширения - http://xsms.nm.ru/custombuttons, у Dark-Demon'а на сайте - http://dark-demon.nm.ru, на сайте поддержки (адрес - у меня в профиле), на старом форуме расширения - http://custombuttons.phpbbnow.com, на форуме расширения custombuttons2 - http://custombuttons2.com. Кое-какие кнопки с последних двух сайтов могут не работать.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
надо поместить в адресную строку браузера и нажать enter
Кстати, нашел багу. При таком добавлении кнопки теряются переводы строк в коде. Наблюдаю на fx 2.0.0.14 + cb 0.0.3 при добавлении моей кнопки для перевода через Гугл.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
При таком добавлении кнопки теряются переводы строк в коде.
И не только при таком. Давно видел. На основном профиле. В соседнем - не теряются.
В чём дело, однако - не знаю. Так что пока wontfix.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
p.s.
Infocatcher
NoScript ? noscript.fixURI <- false (не выяснил ещё, какой настройке в диалоге NoScript это соответствует)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
NoScript ? noscript.fixURI <- false (не выяснил ещё, какой настройке в диалоге NoScript это соответствует)
Да, он самый.
Интересно, почему он еще не удален с тестового профиля? :-/
(не выяснил ещё, какой настройке в диалоге NoScript это соответствует)
И соответствует ли вообще...
Отредактировано Infocatcher (21-05-2008 23:35:58)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Либо noscript.fixURI.exclude <- ^custombutton://[\s\S]*$
И соответствует ли вообще...
Похоже на то.
Попробую отписать разработчику NoScript.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Попробую отписать разработчику NoScript.
А зачем
[\s\S]*$
?
Это же «любые символы в конце строки»...
^custombutton://\S+$ (там действительно не бывает пробелов?)
или
^custombutton://
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует