Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№30102-10-2006 14:23:33

INFOMAN
Телепаты в отпуске
 
Группа: Extensions
Откуда: Кишинев
Зарегистрирован: 31-12-2005
Сообщений: 1099
Веб-сайт

Re: Custom Buttons

Dark-Demon, на jino-net тоже AddType запрещён

Добавлено Пнд 02 Окт 2006 14:24:50 :
Я там php-скрипт юзал, чтобы правильный Content-Type выдавать


Закрой кран
Включи свет ©
Fire! Kill IE is your desire | NULL | NULL

Отсутствует

 

№30202-10-2006 18:48:29

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

по ходу дела xbl-ки надо править через вот эту функцию:
http://www.xulplanet.com/references/objref/XULDocument.html#method_loadBindingDocument

ща буду ковырять... ;)


!

Отсутствует

 

№30304-10-2006 21:45:46

Yan
Участник
 
Группа: Extensions
Откуда: Москва
Зарегистрирован: 27-02-2005
Сообщений: 1019

Re: Custom Buttons

custombuttons 0.0.2 alpha
Внимание! Это тестовая версия, со всеми вытекающими отсюда последствиями.

Совместимость: FF 1.5.0.* - 2.0

Скачать custombuttons 0.0.2 alpha

New:
- исправил права доступа на папку custombuttons в профиле
_____________________________________________________________________

custombuttons 0.0.1.3 alpha

Совместимость: FF 1.5.0.* - 2.0

Скачать custombuttons 0.0.1.3 alpha

New:
- по сравнению с версией 0.0.1.2 добавил только совместимость с Firefox2, а именно пару хаков, чтобы исправно работали кнопки, использующие метод bind.

Отредактировано Yan (04-10-2006 21:53:00)

Отсутствует

 

№30404-10-2006 22:07:15

Dimanish
Участник
 
Группа: Extensions
Зарегистрирован: 31-03-2005
Сообщений: 2371

Re: Custom Buttons

Yan
Зачем две версии?


Тут должна была быть подпись. А, да... Вот она и есть.

Отсутствует

 

№30504-10-2006 22:18:10

Yan
Участник
 
Группа: Extensions
Откуда: Москва
Зарегистрирован: 27-02-2005
Сообщений: 1019

Re: Custom Buttons

Dimanish
Потому что с 0.0.2 возникли некоторые трудности. Видимо, придётся существенно доработать.

Поэтому пока я сделал 0.0.1.3, чтоб можно было нормально пользоваться расширением в Firefox2.

Отсутствует

 

№30605-10-2006 12:00:24

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

в общем через ту функцию сделать ничего не получится :( xbl-ки править на лету нельзя и это диагноз :sick: остаётся только вариант с временными файлами...


!

Отсутствует

 

№30705-10-2006 12:19:27

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Custom Buttons

Dark-Demon пишет

в общем через ту функцию сделать ничего не получится :( xbl-ки править на лету нельзя и это диагноз...

Интересно, можно сделать ссылку на якорь (#) в data:// ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№30805-10-2006 16:38:29

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

Anton, что ты имеешь ввиду?


!

Отсутствует

 

№30905-10-2006 18:45:12

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Custom Buttons

Если можно сделать ссылку на якорь, можно было бы "подшивать" образ *.xbl-файла по data:// протоколу.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№31005-10-2006 19:09:08

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

ой какой изврат... зачем?


!

Отсутствует

 

№31105-10-2006 20:33:44

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Custom Buttons

Dark-Demon пишет

ой какой изврат... зачем?

Ладно-ладно, не буду спорить. : ) Конечно, временные файлы гораздо естественней и, скорее всего, единственный приемлимый вариант.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№31206-10-2006 12:31:41

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

Anton, в общем, как и обещал сделал кнопку к своему расширению реализующую выпадающее меню.

в xul надо добавить такой код:

Выделить код

Код:

<toolbaritem id="cb2-useragent" class="chromeclass-toolbar-additional" style="-moz-binding: url('chrome://cb2-profile/content/custombuttons2.xbl#cb2-useragent');" />

а в xbl такой:

Выделить код

Код:

<binding id="cb2-useragent" extends="chrome://custombuttons2/content/custombuttons2.xbl#allbuttons">
	<content context="">
		<xul:menulist>
			<xul:menupopup>
				<xul:menuitem label="default UA" value="" />
				<xul:menuitem label="FF 2.0b2 UA" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1b2) Gecko/20060821 Firefox/2.0b2" />
				<xul:menuitem label="IE 6.0sp2 UA" value="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" />
				<xul:menuitem label="Op 9.00 UA" value="Opera/9.00 (Windows NT 5.1; U; ru)" />
			</xul:menupopup>
		</xul:menulist>
	</content>
	<implementation>
		<field name="prefservice">Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch)</field>
		<field name="prefname"> 'general.useragent.override' </field>
		<property name="pref"> 
			<getter>	return navigator.userAgent;	</getter>
			<setter>
				<![CDATA[
					if (val=='') this.prefservice.clearUserPref(this.prefname);
					else this.prefservice.setCharPref(this.prefname,val);
					return val;
				]]>
			</setter>
		</property>
	</implementation>
	<handlers>
		<handler event="command">	this.pref= this.boxObject.firstChild.value;	</handler>
	</handlers>
</binding>

css в данном случае не используется. есть мысль вообще от него отказаться...

Отредактировано Dark-Demon (06-10-2006 12:32:48)


!

Отсутствует

 

№31306-10-2006 12:53:58

pongo
Участник
 
Группа: Members
Зарегистрирован: 02-06-2006
Сообщений: 10

Re: Custom Buttons

К сожалению, в прошлый раз никто не ответил. Спрашиваю еще раз.

Можно ли создать кнопку, которая бы удаляла текущую страницу из закладок?
(И если можно, то может ли она еще и историю удалений писать куда-нибудь...)

Отсутствует

 

№31406-10-2006 14:55:30

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

pongo, можно, разрешаю.


!

Отсутствует

 

№31506-10-2006 15:03:49

pongo
Участник
 
Группа: Members
Зарегистрирован: 02-06-2006
Сообщений: 10

Re: Custom Buttons

Dark-Demon, здорово! Но дело в том, что я не разбираюсь в программировании расширенией. Может быть, кто-нибудь напишет?

Отсутствует

 

№31606-10-2006 16:01:03

Dimanish
Участник
 
Группа: Extensions
Зарегистрирован: 31-03-2005
Сообщений: 2371

Re: Custom Buttons

pongo
Слишком уж никому не нужная кроме вас кнопка.


Тут должна была быть подпись. А, да... Вот она и есть.

Отсутствует

 

№31706-10-2006 19:56:40

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Custom Buttons

pongo

Выделить код

Код:

custombutton://%u0423%u0434%u0430%u043B%u0438%u0442%u044C_%u0412%u0421%u0415_%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438_%u043D%u0430_%u0442%u0435%u043A%u0443%u0449%u0438%u0439_%u0430%u0434%u0440%u0435%u0441%5D%5B%5D%5Btry%0A%7B%0A%20%20%20%20var%20rdfs%20%3D%20Components.%20classes%20%5B%22@mozilla.org/rdf/rdf-service%3B1%22%5D.%20getService%20%28Components.%20interfaces.%20nsIRDFService%29%3B%0A%20%20%20%20var%20bmds%20%20%3D%20rdfs.%20GetDataSource%20%28%22rdf%3Abookmarks%22%29%3B%0A%20%20%20%20var%20urlr%20%3D%20rdfs.%20GetResource%20%28%22http%3A//home.netscape.com/NC-rdf%23URL%22%29%3B%0A%20%20%20%20var%20urlv%20%3D%20rdfs.%20GetLiteral%20%28getBrowser%20%28%29.%20currentURI.%20spec%29%3B%0A%20%20%20%20var%20tbms%20%3D%20bmds.%20GetSources%20%28urlr%2C%20urlv%2C%20true%29%3B%0A%20%20%20%20var%20tbm%2C%20alo%2C%20res%2C%20tar%2C%20ali%2C%20src%3B%0A%20%20%20%20while%20%28tbms.%20hasMoreElements%20%28%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20tbm%20%3D%20tbms.%20getNext%20%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28tbm%20instanceof%20Components.%20interfaces.%20nsIRDFResource%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20alo%20%3D%20bmds.%20ArcLabelsOut%20%28tbm%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20while%20%28alo.%20hasMoreElements%20%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20res%20%3D%20alo.%20getNext%20%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28res%20instanceof%20Components.%20interfaces.%20nsIRDFResource%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tar%20%3D%20bmds.%20GetTarget%20%28tbm%2C%20res%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28tar%20instanceof%20Components.%20interfaces.%20nsIRDFResource%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bmds.%20Unassert%20%28tbm%2C%20res%2C%20tar%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20ali%20%3D%20bmds.%20ArcLabelsIn%20%28tbm%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20while%20%28ali.%20hasMoreElements%20%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20res%20%3D%20ali.%20getNext%20%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28res%20instanceof%20Components.%20interfaces.%20nsIRDFResource%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20src%20%3D%20bmds.%20GetSource%20%28res%2C%20tbm%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28res%20instanceof%20Components.%20interfaces.%20nsIRDFResource%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bmds.%20Unassert%20%28src%2C%20res%2C%20tbm%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20var%20rds%20%3D%20bmds.%20QueryInterface%20%28Components.%20interfaces.%20nsIRDFRemoteDataSource%29%3B%0A%20%20%20%20setTimeout%20%28function%20%28%29%20%7Brds.%20Flush%20%28%29%7D%2C%20100%29%3B%0A%7D%0Acatch%20%28e%29%0A%7B%0A%20%20%20%20alert%20%28e%29%3B%0A%7D%5D%5B

Удаляет все закладки на текущий адрес. Историю удалений не ведёт.

Dark-Demon пишет

Anton, в общем, как и обещал сделал кнопку к своему расширению реализующую выпадающее меню.

Ну, во-первых, если перечитаешь старые PM, то заметишь, что я говорил о контекстном меню.
А во-вторых - почему доступна только с клавиатуры ?


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№31806-10-2006 20:56:44

pongo
Участник
 
Группа: Members
Зарегистрирован: 02-06-2006
Сообщений: 10

Re: Custom Buttons

Anton, спасибо, но мне кажется, что код слижком сложный. Есть же BookmarksCommand.deleteBookmark или http://home.netscape.com/NS-rdf#command?cmd=deletebookmark. Вот только я не знаю что с ними делать

Отсутствует

 

№31907-10-2006 13:32:50

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Custom Buttons

pongo пишет

Anton, спасибо, но мне кажется, что код слижком сложный. Есть же BookmarksCommand.deleteBookmark или http://home.netscape.com/NS-rdf#command?cmd=deletebookmark. Вот только я не знаю что с ними делать

Я начинал разработку кнопки с DoCommand, но не разобрался с аргументами cmd=deletebookmark, так что я тоже не знаю, что с ним делать. И BookmarksCommand/BookmarkRemoveTransaction тоже копал, но, имхо, с ними проще не будет, так как перед их вызовом надо формировать массив аргументов node/parentNode/nodeProperties - но, коль скоро они найдены, зачем их помещать их в массив и вызывать функцию ? Лишняя работа, проще сделать вызов Unassert.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№32007-10-2006 14:32:32

pongo
Участник
 
Группа: Members
Зарегистрирован: 02-06-2006
Сообщений: 10

Re: Custom Buttons

Anton, понятно. Но можете написать код, который бы удалял только текущую страницу из закладок?

Отсутствует

 

№32107-10-2006 14:38:43

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Custom Buttons

pongo пишет

...только текущую страницу из закладок?

Вот именно это кнопка и делает.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№32207-10-2006 14:44:23

pongo
Участник
 
Группа: Members
Зарегистрирован: 02-06-2006
Сообщений: 10

Re: Custom Buttons

Anton, ой. Извините. Я прочитал «адрес» как «сеанс».
Всё работает, огромное спасибо

Отсутствует

 

№32308-10-2006 04:59:19

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

новый билд: http://dark-demon.jino-net.ru/~files/cb2-tp4.rar
совсем отказался от css. картинки теперь переключаются через deck.
[b]Anton[/и] специально для тебя сделал кнопку с контекстным меню :)


!

Отсутствует

 

№32408-10-2006 11:04:12

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Custom Buttons

Dark-Demon пишет

...
[b]Anton[/и] специально для тебя сделал кнопку с контекстным меню :)

Опять эти <toolbaritem>... Чтобы нужная кнопка появилась в диалоге нужно вручную править xul и/или extens'ы в xbl. Очень юзабельно.
Не убедительно, понимаешь. Смотри, как эти две кнопки можно сделать без xbl:
Кнопка с выпадающим меню:

Выделить код

Код:

<script type="application/x-javascript" src="chrome://global/content/nsUserSettings.js"/>
<script type="application/x-javascript">
    <![CDATA[
        function showAlert (v)
        {
            var sa = Components. classes ["@mozilla.org/alerts-service;1"]. getService (Components.interfaces.nsIAlertsService);
            sa. showAlertNotification (null, "User Agent:", v, false, "", null);
        }
    ]]>
</script>
<toolbaritem id="cb2-useragent">
    <menulist oncommand="nsPreferences.setUnicharPref('general.useragent.override',this.value);showAlert(this.value);">
		<menupopup>
			<menuitem label="default UA" value="" />
			<menuseparator />
			<menuitem label="FF 2.0b2 UA" value="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1b2) Gecko/20060821 Firefox/2.0b2" />
			<menuitem label="IE 6.0sp2 UA" value="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" />
			<menuitem label="Op 9.00 UA" value="Opera/9.00 (Windows NT 5.1; U; ru)" />
		</menupopup>
	</menulist>
</toolbaritem>

2. Кнопка с контекстным меню

Выделить код

Код:

<toolbarbutton id="cb2-about" context="cb2-about-context" oncommand="openAboutDialog();">
    <label value="[about]" />
	<menupopup id="cb2-about-context" onclick="event.stopPropagation()">
		<menuitem label="config" oncommand="loadURI('about:config');" />
		<menuitem label="mozilla" oncommand="loadURI('about:mozilla');" />
		<menuitem label="plugins" oncommand="loadURI('about:plugins');" />
		<menuitem label="license" oncommand="loadURI('about:license');" />
		<menuitem label="neterror" oncommand="loadURI('about:neterror');" />
		<menuitem label="blank" oncommand="loadURI('about:blank');" />
		<menuitem label="buildconfig" oncommand="loadURI('about:buildconfig');" />
		<menuitem label="feeds" oncommand="loadURI('about:feeds');" />
		<menuitem label="credits" oncommand="loadURI('bout:credits');" />
		<menu label="cache">
			<menupopup>
				<menuitem label="memory" oncommand="loadURI('about:cache?device=memory')" />
				<menuitem label="disk" oncommand="loadURI('about:cache?device=disk')"/>
			</menupopup>
		</menu>
	</menupopup>
</toolbarbutton>

Кратко и без всяких namespaces, handlers, getters/setters.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№32508-10-2006 18:25:54

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Custom Buttons

Опять эти <toolbaritem>... Чтобы нужная кнопка появилась в диалоге нужно вручную править xul и/или extens'ы в xbl. Очень юзабельно.

ничего подобного. xul генерится автоматом и пользователю его править не надо. только xbl.

Не убедительно, понимаешь. Смотри, как эти две кнопки можно сделать без xbl:

в кокретном примере с контекстным меню преимуществ у xbl практически нет. однако в других случаях (bb-кнопки, например) xbl смотрится много более привлекательно, чем xul или dom.

Кратко и без всяких namespaces, handlers, getters/setters.

ну давай меряться пиписьками... реализуй тогда cb2-imagesh на xul.
если очень хочется сделать через xul - никто не мешает вставить этот xul в xbl. а вот с обратным у тебя будут проблемы...


!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]