...
ничего подобного. 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ентов на части порвет !!!
Отсутствует
Может быть, но чтобы кнопка с контекстным меню появилась в моём диалоговом окне настройки панелей инструментов, мне пришлось этот самый xul править.
смешной ты человек ты больно много хочешь от расширения, которое даже не пре-альфа я говорю, что в будущем пользователи будут править только то, что находится внутри <binding> и ничего более.
Вот либо придётся ставить ненужную кнопку, либо все преимущества насмарку. Это ведь смотря как организовать.
я не вижу тут ничего особо зазорного. впрочем, если очень хочется, то можно сделать эту кнопку невидимой, тобишь специальным флагом указывать - добавлять ли для неё запись в xul.
а вот моя:
уже вижу, что она работает неправильно сам догадаешься? впрочем, лови критику:
1. ты создаёшь глобальные переменные, да ещё и с такими короткими именами, а это всегда черевато.
2. setTimeout (setDeckImage, 0); - это по твоему "выглядит аккуратнее?"
3. если настройка является не числом, а строкой, то тебе придётся делать честную проверку на нажатую клавишу.
4. при создании другой кнопки на базе этой придётся искать все вхождения 'permissions.default.image'. у тебя в этом примитивном случае их уже 3, а с более-менее сложной кнопкой, да с таким стилем программирования - туши свет бросай гранату...
такой ценой и я могу сократить свои кнопки раза в два, однако я намеренно этого не делаю, дабы тем, кто их будет переделывать было бы проще это сделать.
Использовать по отдельной привязке на каждый отдельный элемент управления - всё равно что тексты на одном компьютере набирать, музыку слушать - на другом, а чтобы кино посмотреть или интернет посерфить - позарез нужны третий и четвёртый.
кстати, это было бы весьма неплохо! но дорого... пока...
Yan, может ты выскажешься по этому поводу?
!
Отсутствует
Я бы прежде всего предложил не превращать эту ветку в холивар "xbl vs xul", и перенести обсуждение в форум Разработка. Всё-таки здесь лучше обсуждать уже готовые релизы расширения, и кнопки к нему. Короче, создаю тему "Разработка Сustom Buttons", и предлагаю продолжить там.
Отсутствует
Я уже спрашивал здесь, спрошу теперь и в этой теме.
Можно ли сделать кнопку для Custom Buttons, при нажатии на которую открывается окно, в которое надо ввести фразу. На текущей странице перебираются все ссылки, и название которых содержит эту фразу, будут открываться в новых табах.
Например, захожу на форуме на страницу Последние сообщения и открываю все ссылки Новые сообщения.
«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator
Отсутствует
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; в коде.
Отсутствует
Yan
Огромное спасибо! Именно то, что надо!
«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator
Отсутствует
Yan
А нельзя ещё сделать так, чтобы открывались только непосещённые ссылки? Желательно чтоб это было опционально, галочкой. Заранее спасибо.
«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator
Отсутствует
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)
Отсутствует
Yan
хм, не пашет. после нажатия ничего не происходит.
«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator
Отсутствует
Yan
Спасибо. работает, вроде.
«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator
Отсутствует
Можно попросить помощи в создании кнопки с ниспадающим списком фильтров URL corrector - чтоб можно было быстро отключить один из них. Сам, не зная основ создания расширений, уже вторую неделю пытаюсь, но ничего не выходит.
Отсутствует
Пиплы, а как зафигачить кнопку на панельку, шоб страницу сразу в Scrapbook отправлять? В этой теме было что-то подобное, но там средняя кнопка учавствовала и у меня не перло. Так вот, хотца обычную без всяких средних кликов и др. наворотов...
Отсутствует
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
Отсутствует
А можно сделать кнопочку, считающую, сколько раз на странице встречается та или иная фраза?
«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator
Отсутствует
AndreyD
Расширение Scrapbook какой версии?
F.I.R.E.F.O.X.: Fearsome, Intimidating, Redhead-Eating Fiend from the Ominous Xenopolis
Скиньтесь мне на новый MacBook Pro! Кто сколько может!
Отсутствует
Обновил до 1.2.0.8, все равно не работает, может я делаю что-то не так?
Разобрался. Я, идиот, пихал этот код в поле "код" создания новой кнопки.
Отредактировано AndreyD (17-02-2007 21:51:29)
Отсутствует
Примерно так:
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;
Отсутствует
AndreyD
Сделай так же, но перед текстом ничего не вставляй, а после - то, что тебе надо. Или наоборот. По пути наименьшего сопротивления.
«I actually hate programming, but I love solving problems» © Rasmus Lerdorf, PHP's Creator
Отсутствует