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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№32608-10-2006 22:19:06

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

Re: Custom Buttons

Dark-Demon пишет

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

Может быть, но чтобы кнопка с контекстным меню появилась в моём диалоговом окне настройки панелей инструментов, мне пришлось этот самый xul править.

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

(кстати, и с выпадающим тоже). Вот как частный случай: а если пользователю не нужен тег [ code] из твоего расширения ? Вот либо придётся ставить ненужную кнопку, либо все преимущества насмарку. Это ведь смотря как организовать.

...

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

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

Ну давай. Вот твоя:
xul:

Выделить код

Код:

<toolbaritem id="cb2-imagesh" class="custombutton" style="-moz-binding: url('chrome://cb2-profile/content/custombuttons2.xbl#cb2-imagesh')" />

+xbl:

Выделить код

Код:

<binding xbl:id="cb2-imagesh" id="cb2-imagesh" extends="chrome://custombuttons2/content/custombuttons2.xbl#allbuttons">
	<content context="" tooltiptext="image show/hide" >
		<xul:deck xbl:inherits="selectedIndex=image" >
			<xul:toolbarbutton label="show all images" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg==" />
			<xul:toolbarbutton label="hide all images" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC" />
			<xul:toolbarbutton label="hide external" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACdklEQVR42mL4//8/g3zm6f8AAcQAYvz69es/QACBeSAOQAAx/Pnz5//Z20/+AwQQWOrHv///n7x89R8kCxBAYIEuXdb/f//+/X/w8oP/AAHEADMFphcggEAc1pdv3vyHCQIEEMPPnz//gwy8dPcpWAAggMCmnzp16v+Rqw/BAgABBDOD9RfQpncf3v1/9RahHSQHEEBwBd+BCh4DnXLv6Yv/Nx89/3/l/jOwIoAAAisAGXv9+vX/MOedvvn4//Frj8AKAAII7keQBAj//v37//M///8/+/0frAAggFD8gYxB4iAMEEBwBR8+vvv/5v1bYJC8/v/733+4IoAAgit4/e7t/+evX/9/9OIVskmsAAEEV/D01ev/D56//H/78Yv/1x48+//uD9gUVoAAYlizZg04pGAYxD8PjIbXUAUAAQRWMMmA9f+VK1f+dwK9CeKfuP7o/0uoAoAAAivo02f9f+7cuf9tOhAFh4DR9BziTVaAAAIrgIUBCIP4IEloOLACBBADzL8gDsixIC+C4uUnFP+AYmxhBMIAAYRhwE9wpL79/wYYLKCIfQEMmofPIUHz6e///2///EcxCCCAMAwA2fYCmKCeATWC0uFDYNDdf/by/50nL/5fBQbf5ftP/7//CzeEFSCAwJpB/iKErwJTz6V7T/9fBCZMJFewAgQQ3ABQAE0BBjcoyCcAQxUUsj16rP///fsHNuAcMG7OAFPZqRuP/79CMgAggOAGgCIRpBEUX6BkCYqWDh1WeMiD4u4oMBeAcsILJAMAAgjFgF6gjSDNII2gOG3RRhhw+MrD/wcvPfi//+J9eFIGGQAQQESHAa4kDxBgAMjdAQviliYiAAAAAElFTkSuQmCC" />
		</xul:deck>
	</content>
	<implementation>
		<constructor>
			<![CDATA[
				/*this.observer= {observe: Function.prototype.bind.apply(this.observe,[this]) };*/ //работает только до загрузки браузера %-/
				this.observer=
				{
					el:this,
					observe: function() {this.el.observe();},
				};
				this.prefservice.addObserver(this.prefname,this.observer,false);
				this.observe();
			]]>
		</constructor>
		<destructor>
			<![CDATA[
				this.prefservice.removeObserver(this.prefname,this.observer);
			]]>
		</destructor>
		<method name="observe">
			<body>
				<![CDATA[
					this.setAttribute('image', this.pref-1);
				]]>
			</body>
		</method>
		<field name="prefservice"> Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch) </field>
		<field name="prefname"> 'permissions.default.image' </field>
		<property name="image" onget="return this.getAttribute('image')" onset="this.setAttribute('image',val);return val" />
		<property name="pref" onget="return this.prefservice.getIntPref(this.prefname)" onset="this.prefservice.setIntPref(this.prefname,val); return val" />
	</implementation>
	<handlers>
		<handler event="click" button="0" modifiers="any"><![CDATA[		this.pref= 1;		]]></handler>
		<handler event="click" button="1" modifiers="any"><![CDATA[		this.pref= 3;		]]></handler>
		<handler event="click" button="2" modifiers="any"><![CDATA[		this.pref= 2;		]]></handler>
	</handlers>
</binding>

а вот моя:

Выделить код

Код:

<script type="application/x-javascript" src="chrome://global/content/nsUserSettings.js"/>
<script type="application/x-javascript">
    <![CDATA[
        function setDeckImage ()
        {
            document. getElementById ("cb22-imageshdeck"). selectedIndex = nsPreferences. getIntPref ('permissions.default.image', 0);
        }
        var ps = nsPreferences. mPrefService;
        var ps2 = ps. QueryInterface (Components. interfaces. nsIPrefBranch2);
        var imageshObserver =
        {
            observe: function (s, t, d)
            {
                setDeckImage ();
            }
        };
        ps2. addObserver ('permissions.default.image', imageshObserver, false);
        setTimeout (setDeckImage, 0);
    ]]>
</script>
<toolbarbutton id="cb22-imagesh">
	<deck id="cb22-imageshdeck" onclick="nsPreferences.setIntPref('permissions.default.image',event.button)">
		<toolbarbutton label="show all images" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg==" />
		<toolbarbutton label="hide all images" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC" />
		<toolbarbutton label="hide external" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACdklEQVR42mL4//8/g3zm6f8AAcQAYvz69es/QACBeSAOQAAx/Pnz5//Z20/+AwQQWOrHv///n7x89R8kCxBAYIEuXdb/f//+/X/w8oP/AAHEADMFphcggEAc1pdv3vyHCQIEEMPPnz//gwy8dPcpWAAggMCmnzp16v+Rqw/BAgABBDOD9RfQpncf3v1/9RahHSQHEEBwBd+BCh4DnXLv6Yv/Nx89/3/l/jOwIoAAAisAGXv9+vX/MOedvvn4//Frj8AKAAII7keQBAj//v37//M///8/+/0frAAggFD8gYxB4iAMEEBwBR8+vvv/5v1bYJC8/v/733+4IoAAgit4/e7t/+evX/9/9OIVskmsAAEEV/D01ev/D56//H/78Yv/1x48+//uD9gUVoAAYlizZg04pGAYxD8PjIbXUAUAAQRWMMmA9f+VK1f+dwK9CeKfuP7o/0uoAoAAAivo02f9f+7cuf9tOhAFh4DR9BziTVaAAAIrgIUBCIP4IEloOLACBBADzL8gDsixIC+C4uUnFP+AYmxhBMIAAYRhwE9wpL79/wYYLKCIfQEMmofPIUHz6e///2///EcxCCCAMAwA2fYCmKCeATWC0uFDYNDdf/by/50nL/5fBQbf5ftP/7//CzeEFSCAwJpB/iKErwJTz6V7T/9fBCZMJFewAgQQ3ABQAE0BBjcoyCcAQxUUsj16rP///fsHNuAcMG7OAFPZqRuP/79CMgAggOAGgCIRpBEUX6BkCYqWDh1WeMiD4u4oMBeAcsILJAMAAgjFgF6gjSDNII2gOG3RRhhw+MrD/wcvPfi//+J9eFIGGQAQQESHAa4kDxBgAMjdAQviliYiAAAAAElFTkSuQmCC" />
	</deck>
</toolbarbutton>

ой... и правда короче : ) Зато выглядит аккуратнее и работает, в отличие от первой.

Использовать по отдельной привязке на каждый отдельный элемент управления - всё равно что тексты на одном компьютере набирать, музыку слушать - на другом, а чтобы кино посмотреть или интернет посерфить - позарез нужны третий и четвёртый. Но тебя, я чувствую, не переубедить, посему пустой этот спор со своей стороны прекращаю. Удачи, может кто и оценит такой подход.


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

Отсутствует

 

№32709-10-2006 12:19:00

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

Re: Custom Buttons

Может быть, но чтобы кнопка с контекстным меню появилась в моём диалоговом окне настройки панелей инструментов, мне пришлось этот самый xul править.

смешной ты человек :) ты больно много хочешь от расширения, которое даже не пре-альфа :dumb: я говорю, что в будущем пользователи будут править только то, что находится внутри <binding> и ничего более.

Вот либо придётся ставить ненужную кнопку, либо все преимущества насмарку. Это ведь смотря как организовать.

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

а вот моя:

уже вижу, что она работает неправильно :) сам догадаешься? впрочем, лови критику:
1. ты создаёшь глобальные переменные, да ещё и с такими короткими именами, а это всегда черевато.
2. setTimeout (setDeckImage, 0); - это по твоему "выглядит аккуратнее?"
3. если настройка является не числом, а строкой, то тебе придётся делать честную проверку на нажатую клавишу.
4. при создании другой кнопки на базе этой придётся искать все вхождения 'permissions.default.image'. у тебя в этом примитивном случае их уже 3, а с более-менее сложной кнопкой, да с таким стилем программирования - туши свет бросай гранату...

такой ценой и я могу сократить свои кнопки раза в два, однако я намеренно этого не делаю, дабы тем, кто их будет переделывать было бы проще это сделать.

Использовать по отдельной привязке на каждый отдельный элемент управления - всё равно что тексты на одном компьютере набирать, музыку слушать - на другом, а чтобы кино посмотреть или интернет посерфить - позарез нужны третий и четвёртый.

кстати, это было бы весьма неплохо! но дорого... пока...

Yan, может ты выскажешься по этому поводу?


!

Отсутствует

 

№32809-10-2006 17:50:33

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

Re: Custom Buttons

Я бы прежде всего предложил не превращать эту ветку в холивар "xbl vs xul", и перенести обсуждение в форум Разработка. Всё-таки здесь лучше обсуждать уже готовые релизы расширения, и кнопки к нему. Короче, создаю тему "Разработка Сustom Buttons", и предлагаю продолжить там.

Отсутствует

 

№32905-11-2006 16:09:07

SAdmn
Участник
 
Группа: Members
Зарегистрирован: 01-01-2006
Сообщений: 62

Re: Custom Buttons

И снова приходится редактировать - баг вернулся.
Делается ли что-то для прекращения конфликта с флешгот?

Отредактировано SAdmn (06-11-2006 16:10:06)

Отсутствует

 

№33007-11-2006 13:56:33

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341

Re: Custom Buttons

Я уже спрашивал здесь, спрошу теперь и в этой теме. :)
Можно ли сделать кнопку для Custom Buttons, при нажатии на которую открывается окно, в которое надо ввести фразу. На текущей странице перебираются все ссылки, и название которых содержит эту фразу, будут открываться в новых табах.
Например, захожу на форуме на страницу Последние сообщения и открываю все ссылки Новые сообщения.


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№33107-11-2006 15:36:39

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

Re: Custom Buttons

stoneflash
Ссылки надо автоматически открыть в новых табах, или только добавить к ним аттрибут target="_blank"?
Если первое, то:

Выделить код

Код:

custombutton://%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u044B%u0445%20%u0442%u0430%u0431%u0430%u0445%20%u0432%u0441%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0441%20%u0444%u0440%u0430%u0437%u043E%u0439%5D%5B%5D%5Bvar%20caseSensitive%3Dtrue%3B%0Avar%20s%3Dprompt%28%27%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u044B%u0445%20%u0442%u0430%u0431%u0430%u0445%20%u0432%u0441%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0441%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0441%20%u0444%u0440%u0430%u0437%u043E%u0439%3A%27%29%0Aif%20%28%21caseSensitive%29%20s%3Ds.toLowerCase%28%29%3B%0Avar%20doc%3Dcontent.document%3B%0Avar%20ar%3Ddoc.getElementsByTagName%28%27a%27%29%3B%0Avar%20hrefs%3D%7B%7D%3B%0Afor%20%28var%20i%3D0%3Bi%3Car.length%3Bi++%29%7B%0A%20%20var%20text%3Dar%5Bi%5D.innerHTML%3B%0A%20%20if%20%28%21caseSensitive%29%20text%3Dtext.toLowerCase%28%29%3B%0A%20%20if%20%28%20%20%28text%09.replace%28/%26nbsp%3B/g%2C%27%20%27%29%0A%20%20%09%09.replace%28/%26amp%3B/g%2C%27%26%27%29%0A%20%20%09%09.replace%28/%26quot%3B/g%2C%27%22%27%29%0A%20%20%09%09.indexOf%28s%29%21%3D-1%0A%09%29%0A%09%26%26%28ar%5Bi%5D.href%29%0A%09%29%0A%20%20%7B%0A%09hrefs%5Bar%5Bi%5D.href%5D%3D1%3B%0A%20%20%7D%0A%7D%0Afor%20%28var%20h%20in%20hrefs%29%7B%0A%20%20%20%20gBrowser.addTab%28h%29%3B%0A%7D%5D%5B

По умолчанию поиск регистрозависим.
Настраивается указанием var caseSensitive=false; в коде.

Отсутствует

 

№33207-11-2006 16:40:16

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341

Re: Custom Buttons

Yan
Огромное спасибо! Именно то, что надо!


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№33307-11-2006 19:34:13

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341

Re: Custom Buttons

Yan
А нельзя ещё сделать так, чтобы открывались только непосещённые ссылки? Желательно чтоб это было опционально, галочкой. Заранее спасибо.


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№33407-11-2006 23:40:20

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

Re: Custom Buttons

stoneflash

Выделить код

Код:

custombutton://%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u044B%u0445%20%u0442%u0430%u0431%u0430%u0445%20%u0432%u0441%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0441%20%u0444%u0440%u0430%u0437%u043E%u0439%5D%5B%5D%5Bvar%20caseSensitive%3Dtrue%3B%0Avar%20promptService%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/prompt-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIPromptService%29%3B%0Avar%20onlyUnVisited%20%3D%20%7B%7D%3B%0Avar%20s%3D%7B%7D%3B%0ApromptService.prompt%28window%2C%27%27%2C%0A%20%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u044B%u0445%20%u0442%u0430%u0431%u0430%u0445%20%u0432%u0441%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0441%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0441%20%u0444%u0440%u0430%u0437%u043E%u0439%3A%22%2Cs%2C%0A%20%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u043D%u0435%u043F%u043E%u0441%u0435%u0449%u0451%u043D%u043D%u044B%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%22%2C%0A%20%20onlyUnVisited%29%3B%0AonlyUnVisited%3DonlyUnVisited.value%3B%0As%3Ds.value%3B%0Aif%20%28s%29%7B%0A%09if%20%28%21caseSensitive%29%20s%3Ds.toLowerCase%28%29%3B%0A%09var%20doc%3Dcontent.document%3B%0A%09var%20ar%3Ddoc.getElementsByTagName%28%27a%27%29%3B%0A%09var%20hrefs%3D%7B%7D%3B%0A%09var%20z%3D0%3B%0A%09var%20his%3DComponents.classes%5B%22@mozilla.org/browser/global-history%3B2%22%5D%0A%09%09.getService%28Components.interfaces.nsIGlobalHistory2%29%3B%0A%09var%20IO%3DComponents.%20classes%5B%22@mozilla.org/network/io-service%3B1%22%5D.%0A%09%09getService%28Components.interfaces.nsIIOService%29%3B%0A%09for%20%28var%20i%3D0%3Bi%3Car.length%3Bi++%29%7B%0A%09%20%20var%20text%3Dar%5Bi%5D.innerHTML%3B%0A%09%20%20if%20%28%21caseSensitive%29%20text%3Dtext.toLowerCase%28%29%3B%0A%09%20%20if%20%28%20%20%28text%09.replace%28/%26nbsp%3B/g%2C%27%20%27%29%0A%09%20%20%09%09.replace%28/%26amp%3B/g%2C%27%26%27%29%0A%09%20%20%09%09.replace%28/%26quot%3B/g%2C%27%22%27%29%0A%09%20%20%09%09.indexOf%28s%29%21%3D-1%0A%09%09%29%0A%09%09%26%26%28ar%5Bi%5D.href%29%0A%09%09%26%26%28%28%21onlyUnVisited%29%7C%7C%28%21his.isVisited%28%20IO.newURI%28ar%5Bi%5D.href%2Cnull%2Cnull%29%20%29%29%29%0A%09%09%29%0A%09%20%20%7B%0A%09%09hrefs%5Bar%5Bi%5D.href%5D%3D1%3B%0A%09%09z++%3B%0A%09%20%20%7D%0A%09%7D%0A%09//alert%28z%29%3B%0A%09for%20%28var%20h%20in%20hrefs%29%7B%0A%09%20%20%20%20gBrowser.addTab%28h%29%3B%0A%09%7D%0A%7D%5D%5B/*Initialization%20Code*/

Исправил код 8.11.06 в 20:39

Отредактировано Yan (08-11-2006 20:40:19)

Отсутствует

 

№33508-11-2006 20:18:18

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341

Re: Custom Buttons

Yan
хм, не пашет. после нажатия ничего не происходит.


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№33608-11-2006 20:41:04

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

Re: Custom Buttons

stoneflash
Точняк. Забыл, что я в 0.0.2 кое-что изменил. Отредактировал предыдущее сообщение.

Отсутствует

 

№33708-11-2006 20:46:23

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341

Re: Custom Buttons

Yan
Спасибо. работает, вроде. :)


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№33811-11-2006 12:21:51

SAdmn
Участник
 
Группа: Members
Зарегистрирован: 01-01-2006
Сообщений: 62

Re: Custom Buttons

Можно попросить помощи в создании кнопки с ниспадающим списком фильтров URL corrector - чтоб можно было быстро отключить один из них. Сам, не зная основ создания расширений, уже вторую неделю пытаюсь, но ничего не выходит.

Отсутствует

 

№33914-11-2006 20:09:24

AK-74
Участник
 
Группа: Members
Зарегистрирован: 12-11-2006
Сообщений: 31

Re: Custom Buttons

Пиплы, а как зафигачить кнопку на панельку, шоб страницу сразу в Scrapbook отправлять? В этой теме было что-то подобное, но там средняя кнопка учавствовала и у меня не перло. Так вот, хотца обычную без всяких средних кликов и др. наворотов...:blush:

Отсутствует

 

№34014-11-2006 21:34:42

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

Re: Custom Buttons

AK-74
Нужна кнопка "Захватить" или "Захватить как...", которая вызывает настройки сохранения?

Добавлено Втр 14 Ноя 2006 21:40:22 :
Собственно, вот 2 кнопки:
Захватить:

Выделить код

Код:

custombutton://Capture%20with%20Scrapbook%5D%5Bchrome%3A//scrapbook/skin/capture_entire_as.png%5D%5BsbBrowserOverlay.execCapture%28false%2Cfalse%2Cfalse%2C%27%27%29%3B%5D%5B

Захватить как...:

Выделить код

Код:

custombutton://Capture%20web-page%20as...%5D%5Bchrome%3A//scrapbook/skin/capture_entire_as.png%5D%5BsbBrowserOverlay.execCapture%28false%2Cfalse%2Ctrue%2C%27%27%29%3B%5D%5B

Отсутствует

 

№34116-11-2006 20:35:46

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341

Re: Custom Buttons

А можно сделать кнопочку, считающую, сколько раз на странице встречается та или иная фраза?


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

№34216-02-2007 23:52:05

AndreyD
Участник
 
Группа: Members
Зарегистрирован: 12-03-2005
Сообщений: 115
UA: Firefox 2.0

Re: Custom Buttons

Yan

Захватить как...:

у меня не работает почему-то.

Отсутствует

 

№34317-02-2007 00:34:45

Modex
_
 
Группа: Extensions
Откуда: Краснодар, Россия
Зарегистрирован: 10-10-2004
Сообщений: 3311
UA: Minefield 3.0

Re: Custom Buttons

AndreyD
Расширение Scrapbook какой версии? :)


F.I.R.E.F.O.X.: Fearsome, Intimidating, Redhead-Eating Fiend from the Ominous Xenopolis
Скиньтесь мне на новый MacBook Pro! Кто сколько может!

Отсутствует

 

№34417-02-2007 01:00:50

AndreyD
Участник
 
Группа: Members
Зарегистрирован: 12-03-2005
Сообщений: 115
UA: Firefox 2.0

Re: Custom Buttons

Modex Версия 1.2.0.6

Отсутствует

 

№34517-02-2007 20:40:30

MySh
Кактусогрыз
 
Группа: Extensions
Зарегистрирован: 17-12-2006
Сообщений: 4623
UA: Firefox 2.0

Re: Custom Buttons

Scrapbook 1.2.0.8. — всё работает :)
Спасибо!

Отсутствует

 

№34617-02-2007 21:41:18

AndreyD
Участник
 
Группа: Members
Зарегистрирован: 12-03-2005
Сообщений: 115
UA: Firefox 2.0

Re: Custom Buttons

Обновил до 1.2.0.8, все равно не работает, может я делаю что-то не так?
Разобрался. Я, идиот, пихал этот код в поле "код" создания новой кнопки.

Отредактировано AndreyD (17-02-2007 21:51:29)

Отсутствует

 

№34717-02-2007 22:18:21

AndreyD
Участник
 
Группа: Members
Зарегистрирован: 12-03-2005
Сообщений: 115
UA: Firefox 2.0

Re: Custom Buttons

Как выглядит код при создании кнопки для вставки текста в позицию курсора в форме (для смайла например?)

Отсутствует

 

№34817-02-2007 22:44:21

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

Re: Custom Buttons

Примерно так:

Выделить код

Код:

var open="[b]";
var close="[/b]";
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
theBox.selectionStart = startPos;
theBox.selectionEnd = endPos + open.length + close.length;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;

Отсутствует

 

№34918-02-2007 12:40:01

AndreyD
Участник
 
Группа: Members
Зарегистрирован: 12-03-2005
Сообщений: 115
UA: Firefox 2.0

Re: Custom Buttons

Yan, я так понимаю, этот код вставляет b перед выделенным текстом и /b после него. А просто вставка тескста? Извините, но в программировании не силен.

Отсутствует

 

№35018-02-2007 12:53:32

stoneflash
Хитрый Лис
 
Группа: Extensions
Откуда: Msk
Зарегистрирован: 02-04-2006
Сообщений: 4341
UA: Firefox 2.0

Re: Custom Buttons

AndreyD
Сделай так же, но перед текстом ничего не вставляй, а после - то, что тебе надо. Или наоборот. По пути наименьшего сопротивления. :)


«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator

Отсутствует

 

Board footer

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