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

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

№125118-10-2009 04:52:02

vurdalak
Участник
 
Группа: Members
Зарегистрирован: 03-06-2005
Сообщений: 174
UA: Firefox 3.5

Re: Custom Buttons

Есть код кнопки - меню.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3EForum%20Links%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAYAAADwMZRfAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAGFJREFUeNpi/P//PwOlgImBCoAFXcA05g5ep51eosJIH5cgAUa6hgnNvfOfWC8O0oCdNWsWG8UBm5aW9otiQ65ePAlnLyh9y0ysIYzoGRAp2TPiSPaEDRmwxAYAAAD//wMACLcak+hePnoAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//------/images-------%0Amozpic%3D%27data%3Aimage/x-icon%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg%3D%3D%27%3B%0Aoszpic%3D%27data%3Aimage/x-icon%3Bbase64%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%27%0Aruboardpic%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAACiSxgAnUcUAIk5AgC0XSgAslkmALdhKgCVQQ0AuGMsAI07BgCPPQcAuWQsAIc3AAD///8AqlAfALFWJACINwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKBQAPCwsLCwsLCwsLCwoKCgcNAgsLCwsLCwsLCwsKCgoKBAgLCwsLCwsLCwsLCgoKCgMGCwsLCwsLCwsLCwoMDAoFAQwMCwsMDAwMDAsKDAwKBwwMCwsMDAsLDAwLCgwMCgwMBgILDAwLCwwMCwoMDAwMDA0JCwwMCwsMDAsKDAwKCgwMAAIMDAsLDAwLCgwMCgoMDAQBAgsLCwsLCwoMDAwMDAoHBAELCwsLCwsKCgoKCgoKCgoEAQILCwsLCgoKCgoKCgoKBwMBCAsLCwoKCgoKCgoKCgoKAwAICwsKCgoKCgoKCgoKCgoDDQYPCgoKCgoKCgoKCgoKCgUOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%27%0Aixbtpic%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA////AJxRUQChU1QAmE1NAJFHRwCjWloAhjw8AJ5NTgCkVlcAlUlKAKhVVwCoVlgAoE1PAKlcXQC2aGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAIDgcAAAAAAAAAAAAAAAALDA4HDgAAAAAAAAAAAAAKAgAAAAAAAAAAAAAAAAAEAwEBAQEBAgMAAAAAAAAECgQCAQEBAAICAgAAAAACBAMODgEBAQALCwsMAAAFBQQKCAgBAQEACAgNDQ0AAAIDAgkBAQEBAwsLCwwAAAAABQoCCgoAAAAICAgAAAAAAAAGBgUBAQEACQkAAAAAAAAAAAQHAQEBBAgAAAAAAAAAAAAABQYGAgIAAAAAAAAAAAAAAAADBAUAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9/AAD+PwAA/B8AAPgPAADwBwAA4AMAAMABAACAAAAAwAEAAOADAADwBwAA+A8AAPwfAAD+PwAA/38AAP//AAA%3D%27%0Aoverclpic%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AeQAAAAAAAAB5AAAAAAAAAHmQAAAAAAAAeZkAAAAAAABwmQAAAAAACXCZkAAAAACZd5mZAAAACZl3CZmQAACZmXdwmZmZmZmZd3CZmZmZmZl3dwmZmZmZkHd3cAmZmZkAB3d3AAmZAAcAd3d3AAB3cAAHd3d3d3AAAAAHd3dwAAA//wAAP/8AAB//AAAP/wAAT/4AAEf8AAAD+AAAIfAAABAAAAAQAAAACAEAAAYDAACDjgAAwPEAAOAHAAD4HwAA%27%0A//------/images-------%0A%0Avar%20links%3Dnew%20Array%3B%0A//------menu%20items--------%0Alinks.push%28%5B%27Mozilla%20Forum%27%2C%20mozpic%2C%20%27http%3A//forum.mozilla-russia.org/%27%5D%29%3B%0Alinks.push%28%5B%27Oszone%20Forum%27%2C%20oszpic%2C%20%27http%3A//forum.oszone.net/%27%5D%29%3B%0Alinks.push%28%5B%27Ruboard%20Forum%27%2C%20ruboardpic%2C%20%27http%3A//forum.ru-board.com/%27%5D%29%3B%0Alinks.push%28%5B%27Ixbt%20Forum%27%2C%20ixbtpic%2C%20%27http%3A//forum.ixbt.com/%27%5D%29%3B%0Alinks.push%28%5B%27Overclockers%20Forum%27%2C%20overclpic%2C%20%27http%3A//forums.overclockers.ru/%27%5D%29%3B%0A//links.push%28%27separator%27%29%3B%0A//------/menu%20items-------%0A%0Avar%20nMItem%3Dfunction%28label%2Cimg%2Clink%2Cargs%2Cobj%29%7B%0A%20%20var%20m%3Ddocument.createElement%28%27menuitem%27%29%3B%0A%20%20m.setAttribute%28%27label%27%2Clabel%29%3B%0A%20%20m.f%3Dobj.newTab.bind%28obj%29%3B%0A%20%20m.setAttribute%28%27oncommand%27%2C%27this.f%28%22%27+link+%27%22%2C%22%27+args+%27%22%29%27%29%3B%0A%20%20m.setAttribute%28%27class%27%2C%27menuitem-iconic%27%29%3B%0A%20%20m.setAttribute%28%27image%27%2Cimg%29%3B%0A%20%20m.tooltipText%20%3D%20label%3B%0A%20%20return%20m%3B%0A%7D%0A%0Athis.newTab%3Dfunction%28link%2Cargs%29%7B%0Avar%20tab%20%3D%20getBrowser%20%28%29.%20addTab%20%28link%29%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20tab%3B%0A%7D%0A%0A%0Avar%20mP%3Ddocument.createElement%28%27menupopup%27%29%3B%0Afor%20%28var%20i%3D0%3Bi%3Clinks.length%3Bi++%29%7B%0A%20if%20%28links%5Bi%5D%20%3D%3D%27separator%27%29%7B%0A%20%20mP.appendChild%28document.createElement%28%27menuseparator%27%29%29%3B%0A%20%7Delse%7B%0A%20%20if%20%28%21links%5Bi%5D%20%5B2%5D%29%20links%5Bi%5D%20%5B2%5D%3D%27%27%3B%0A%20%20mP.appendChild%28nMItem%28links%5Bi%5D%20%5B0%5D%2Clinks%5Bi%5D%20%5B1%5D%2Clinks%5Bi%5D%20%5B2%5D%2Clinks%5Bi%5D%20%5B3%5D%2Cthis%29%29%3B%0A%20%7D%0A%7D%0A%0A%0Athis.appendChild%28mP%29%3B%0A//this.%20setAttribute%20%28%22popup%22%2C%20mP.%20id%20%3D%20%22cbforumlinks-%22%20+%20this.%20id%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E

У меня элементы меню (ссылки) открываются всегда в новой вкладке.
Как можно сделать так, чтобы по ЛКМ в текущей, а по СКМ в новой вкладке ?

Отсутствует

 

№125218-10-2009 11:47:31

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

Re: Custom Buttons

vurdalak

Надо заменить:

Выделить код

Код:

m.setAttribute('oncommand','this.f("'+link+'","'+args+'")');

на

Выделить код

Код:

m.setAttribute('onclick','this.f(event,"'+link+'","'+args+'")');

и

Выделить код

Код:

this.newTab=function(link,args){
var tab = getBrowser (). addTab (link);
getBrowser (). selectedTab = tab;

на

Выделить код

Код:

this.newTab=function(event,link,args){
var where = whereToOpenLink (event);
openUILinkIn (link, where);

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

Отсутствует

 

№125318-10-2009 14:26:14

vurdalak
Участник
 
Группа: Members
Зарегистрирован: 03-06-2005
Сообщений: 174
UA: Firefox 3.5

Re: Custom Buttons

Спасибо :beer:
А чтобы после кликанья средней кнопкой меню сразу же убиралось, как после ЛКМ ?

P.S. Как сделать чтобы tooltiptext обрезался при показе , скажем до 20 символов, если это возможно ?

Отредактировано vurdalak (18-10-2009 14:34:37)

Отсутствует

 

№125418-10-2009 14:53:51

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

Re: Custom Buttons

vurdalak пишет

Спасибо :beer:
А чтобы после кликанья средней кнопкой меню сразу же убиралось, как после ЛКМ ?

Выделить код

Код:

openUILinkIn (link, where);
this. open = false;

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

Отсутствует

 

№125519-10-2009 09:12:27

mshubin
Участник
 
Группа: Members
Зарегистрирован: 08-09-2009
Сообщений: 47
UA: Firefox 3.5

Re: Custom Buttons

Всем привет!

А как можно реализовать вот такую задачу. У меня есть 10 папок с автоматическим поиском:
FOLDER1
FOLDER2
FOLDER3
...
FOLDER10

В дереве папок я добавил колонку "Всего", в которой отображается сколько писем находится в каждой из папок с автоматическим поиском (в каждую из папок попадает письма с определенной меткой)
Проблема: для того чтобы это значение "всего" обновилось (например, после того как на очередном письме была поставлена новая метка), необходимо кликнуть на папку FOLDERX, похоже, что галка "Поиск онлайн" в данной ситуации не помогает.

Можно ли сделать некий workaround, чтобы при нажатии на кнопку, происходил цикл по этим папкам и происходило "взбадривание" :) и, соответственно, пересчет показателя "всего" для каждой из папок. Другими словами, можно ли для конкретной папки с автоматическим поиском вызвать процедуру, которая выполняла бы те же действия, что происходят, когда мы кликаем на папку с автоматическим поиском....?


Спасибо

Отсутствует

 

№125621-10-2009 07:05:26

Xvost
Участник
 
Группа: Members
Откуда: Краматорск, Дружковка, Украина
Зарегистрирован: 03-11-2007
Сообщений: 138
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

okkamas_knife пишет

очень не хватает бэкапа всех кнопок

Поддерживаю. МозБекапом не сохраняются кнопки.:(

Отсутствует

 

№125721-10-2009 09:36:57

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Xvost пишет

Поддерживаю. МозБекапом не сохраняются кнопки

Почему не сохраняется, если при выборе того что сохранять нажать на кнопку "Неизвестные файлы" то там можно будет выбрать папку custombuttons, где кнопки хранятся

Отсутствует

 

№125821-10-2009 09:58:21

Xvost
Участник
 
Группа: Members
Откуда: Краматорск, Дружковка, Украина
Зарегистрирован: 03-11-2007
Сообщений: 138
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Jarichek пишет

Почему не сохраняется, если при выборе того что сохранять нажать на кнопку "Неизвестные файлы" то там можно будет выбрать папку custombuttons, где кнопки хранятся

Где в МозБекапе кнопка "Неизвестные файлы"?

Отсутствует

 

№125921-10-2009 10:34:55

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Xvost пишет

Где в МозБекапе кнопка "Неизвестные файлы"?

да вот же она:
8Do6RL37S2.png

Отсутствует

 

№126022-10-2009 16:16:40

mshubin
Участник
 
Группа: Members
Зарегистрирован: 08-09-2009
Сообщений: 47
UA: Firefox 3.5

Re: Custom Buttons

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

Например есть label с идентификатором 1 и названием "Срочное", что надо написать в кнопке, чтобы эта метка появилась.

Пытался распрасить код дополнения TagToolbar, чтобы понять это, но что-то у меня не получилось понять. Спасибо :)

Отсутствует

 

№126123-10-2009 11:30:26

mshubin
Участник
 
Группа: Members
Зарегистрирован: 08-09-2009
Сообщений: 47
UA: Firefox 3.5

Re: Custom Buttons

Еще вопрос :) Что надо написать в коде кнопки, чтобы в диалоге создания письма происходило то же действие, что и при выборе в меню
Настройки/формат/<Выбор формата составления письма>

На сколько я понял, вызывается вот эта функция:

function OutputFormatMenuSelect(target)
{
  if (gMsgCompose)
  {
    var msgCompFields = gMsgCompose.compFields;
    var toolbar = document.getElementById("FormatToolbar");
    var format_menubar = document.getElementById("formatMenu");
    var insert_menubar = document.getElementById("insertMenu");
    var show_menuitem = document.getElementById("menu_showFormatToolbar");

    if (msgCompFields)
      switch (target.getAttribute('id'))
      {
        case "format_auto":  gSendFormat = nsIMsgCompSendFormat.AskUser;     break;
        case "format_plain": gSendFormat = nsIMsgCompSendFormat.PlainText;   break;
        case "format_html":  gSendFormat = nsIMsgCompSendFormat.HTML;        break;
        case "format_both":  gSendFormat = nsIMsgCompSendFormat.Both;        break;
      }
    gHideMenus = (gSendFormat == nsIMsgCompSendFormat.PlainText);
    format_menubar.hidden = gHideMenus;
    insert_menubar.hidden = gHideMenus;
    show_menuitem.hidden = gHideMenus;
    toolbar.hidden = gHideMenus ||
      (show_menuitem.getAttribute("checked") == "false");
  }
}

а что передавать в качестве target - кто бы знал :(

Отсутствует

 

№126223-10-2009 15:35:54

Xvost
Участник
 
Группа: Members
Откуда: Краматорск, Дружковка, Украина
Зарегистрирован: 03-11-2007
Сообщений: 138
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Jarichek пишет
Xvost пишет

Где в МозБекапе кнопка "Неизвестные файлы"?

да вот же она:
http://pic.ipicture.ru/uploads/091021/t … RL37S2.png

Ясно. Просто у меня была более ранняя версия программы, где подобной кнопочки не было. Спасибо!

Отсутствует

 

№126323-10-2009 19:29:30

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

Re: Custom Buttons

mshubin

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

Например есть label с идентификатором 1 и названием "Срочное", что надо написать в кнопке, чтобы эта метка появилась.

Наверное, так:
Если это предопределенная метка, то

Выделить код

Код:

ToggleMessageTag ("$label1", true);

Если определённая пользователем, то

Выделить код

Код:

ToggleMessageTag ("название_метки", true);

а что передавать в качестве target - кто бы знал

Пункт меню. Кроме того, ему ещё флажок надо ставить самостоятельно.

Выделить код

Код:

var target = document. getElementById ("format_plain");
OutputFormatMenuSelect (target);
target. setAttribute ("checked", "true");

memini

А CustomButtons позволяет работать с файлами?

CustomButtons позволяет выполнить код javascript, назначенный кнопке. Платформа mozilla приложений предоставляет средства для работы с файлами, доступные среде исполнения javascript.
Так что можно сказать, что позволяет.


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

Отсутствует

 

№126424-10-2009 16:13:33

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

Re: Custom Buttons

okkamas_knife

нужно чтоб по клику левой кнопкой вываливалось меню со списком юзерагентов и при выборе он использовался

Выделить код

Код:

var меню =
<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       oncommand="this.parentNode.сменитьЮзерагент(event)">
    <menuitem value="useragent1" label="юзерагент1"/>
    <menuitem value="useragent2" label="юзерагент2"/>
    <menuitem value="useragent3" label="юзерагент3"/>
</menupopup>;
меню = custombuttonsUtils. makeXML (меню);
this. orient = "horizontal";
this. type = "menu";
this. appendChild (меню);
this. сменитьЮзерагент = function (событие)
{
    var юзерагент = событие. target. getAttribute ("value");
    var ps = Components. classes ["@mozilla.org/preferences-service;1"]. getService (Components. interfaces. nsIPrefService). getBranch ("general.");
    ps. setCharPref ("useragent.override", юзерагент);
}

Изменять надо строки

Выделить код

Код:

<menuitem value="useragent1" label="юзерагент1"/>

где value - строка юзерагента, label - её имя в меню.

можно ли каким либо образом в СВ задавать ширину кнопки и помещать на неё меняющийся текст?

Ширину изменить можно

Выделить код

Код:

this. style. width = "100px"

в раздел "Инициализация".

Текст кнопки можно менять задавая значение атрибута label, при этом режим отображения кнопок в диалоге настройки панелей инструментов должен быть задан как "Значки и текст" или "Только текст".
Если этого достаточно, то можно вот так.

Отредактировано Anton (24-10-2009 16:14:31)


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

Отсутствует

 

№126527-10-2009 10:21:51

mshubin
Участник
 
Группа: Members
Зарегистрирован: 08-09-2009
Сообщений: 47
UA: Firefox 3.5

Re: Custom Buttons

Друзья, а помогите кто-нибудь с таким кодом.
При нажатии на кнопку осуществляются следующие действия
1. В папках XXX,YYY,ZZZ (задаются в коде) осуществляется перебор всех писем в папке и при выполнении условия Тема письма содержит подстроку "Иван иванович" на письма ставится определенная пользователем метка "название_метки"

PS
Про возможности использования фильтров - знаю :) Они задачу не решают)) Просто алгоритм на самом деле будет более хитрый, чем просто найти подстроку "Иван иванович" :) ну это я уже сам))

Спасибо

Отсутствует

 

№126627-10-2009 12:17:18

3Jlou
Участник
 
Группа: Members
Зарегистрирован: 14-08-2008
Сообщений: 211
UA: unknown 0.0

Re: Custom Buttons

Anton, можно дополнить кнопку юзерагента?
1. выбранный пункт отмечать галкой;
2. сделать 1-м пунктом значение "по-умолчанию" и отделить его от остальных разделителем.

Отсутствует

 

№126728-10-2009 11:51:36

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Anton
кстати, по поводу моего поста вот здесь ... заметил, что этот баг стабильно проявляется в следующей ситуации: открыть DOM инспектор - выбрать для исследования окно браузера - тыкнуть кнопку "Найти узел для исследования, щелкнув по нему" и выбрать какой-нибудь элемент интерфейса. Затем щелкнуть на кнопку закладок и немного полистать папки в закладка и появляется глюк. Исправлять конечно не прошу если дело темное, но если появятся идеи конечно будет лучше :)

Отсутствует

 

№126828-10-2009 19:20:37

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

Jarichek пишет

Затем щелкнуть на кнопку закладок и немного полистать папки в закладка и появляется глюк.

Вид – Показывать узлы доступности (забавный перевод)
включено?
У меня из-за этого был такой же глюк.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№126928-10-2009 19:33:25

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Infocatcher пишет

Вид – Показывать узлы доступности (забавный перевод)
включено?
У меня из-за этого был такой же глюк.

да, точно, сам же ставил :) Спасибо за подсказку

Отсутствует

 

№127029-10-2009 11:10:46

3Jlou
Участник
 
Группа: Members
Зарегистрирован: 14-08-2008
Сообщений: 211
UA: IE 8.0

Re: Custom Buttons

Поставил кнопку поиска, может кому пригодится:
LeftClick - поисковик в текущей вкладке
MiddleClick (Ctrl+LeftClick) - поисковик в новой вкладке
RightClick - поиск текста из буфера обмена в текущей вкладке
Ctrl+RightClick - поиск текста из буфера обмена в новой вкладке
Shift+RightClick - выбор поисковика
Ctrl+Click - меню кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3EGoogle%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CAAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%252BTzvb2%252B%252Fne4dFJeBw0egA%252FfAJAfAA8ewBBegAAAAD%252B%252FPtft98Mp%252BwWsfAVsvEbs%252FQeqvF8xO7%252F%252F%252F63yqkxdgM7gwE%252FggM%252BfQA%252BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%252FQvq%252Bfz%252Bf%252F%252B%252B%252FZKhR05hgBBhQI8hgBAgAI9ewD0%252B%252Fg3pswAtO8Cxf4Kw%252FsJvvYAqupKsNv%252B%252Fv7%252F%252FP5VkSU0iQA7jQA9hgBDgQU%252BfQH%252F%252Ff%252FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%252Fv%252Fg6Nc%252Fhg05kAA8jAM9iQI%252BhQA%252BgQDQu6b97uv%252F%252F%252F7V8Pqw3eiWz97q8%252Ff%252F%252F%252F%252F7%252FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%252F%252B%252F%252F39%252F%252F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%252F%252B%252Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%252BooT8%252Fv%252F7%252F%252F%252FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%252BhwGfXifWvqz%252B%252Ff%252F58u%252Fev6Dt4tr%252B%252F%252F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%252FkwBChwHt4dv%252F%252F%252F728ei1bCi7VAC5XQ7kz7n%252F%252F%252F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%252F%252F%252F9%252F%252F%252FSqYK5UwDKZAS9WALIkFn%252B%252F%252F3%252F%252BP8oKccGGcIRJrERILYFEMwAAuEAAdX%252F%252Ff7%252F%252FP%252B%252BfDvGXQLIZgLEWgLOjlf7%252F%252F%252F%252F%252F%252F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%252F%252F%252F%252F7%252B%252Fu2bCTIYwDPZgDBWQDSr4P%252F%252Fv%252F%252F%252FP5GRuABAPkAA%252FwBAfkDAPAAAesAAN%252F%252F%252B%252Fz%252F%252F%252F64g1C5VwDMYwK8Yg7y5tz8%252Fv%252FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%252F%252FPvi28ymXyChTATRrIb8%252F%252F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%0AsetTimeout%28function%28that%29%7B%0A/*%u521D%u671F%u8A2D%u5B9A%u30B3%u30FC%u30C9%uFF08%u30B9%u30BF%u30FC%u30C8%u30A2%u30C3%u30D7%u3067%u5B9F%u884C%uFF09*/%0A/*---------------%20Custom%20Buttons2%20Attributes%20Block%20Start%20----------------*/%0Athat.setAttribute%28%27persist%27%2C%22label%22%29%3B%0Athat.setAttribute%28%27author%27%2C%27Alice0775%27%29%3B%0Athat.setAttribute%28%27version%27%2C%2720071008.00%27%29%3B%0Athat.setAttribute%28%27homepage%27%2C%27http%3A//space.geocities.yahoo.co.jp/gl/alice0775%27%29%3B%0Athat.setAttribute%28%27dependency%27%2C%27null%27%29%3B%0Athat.setAttribute%28%27status%27%2C%27null%27%29%3B%0Athat.setAttribute%28%27public%27%2Ctrue%29%3B%0Athat.setAttribute%28%27help%27%2C%272%2Csearch%20w/%20Searchbar%20Text%20or%20Clipboard%20Text%27%29%3B%0A%0A//%u30A8%u30F3%u30B8%u30F3%u540D%u304B%u3089%u30A8%u30F3%u30B8%u30F3%u30AA%u30D6%u30B8%u30A7%u30AF%u30C8%u3092%u5F97%u308B%0Athat.getEngine%20%3D%20function%28aEngineName%29%7B%0A%20%20const%20nsIBSS%20%3D%20Components.interfaces.nsIBrowserSearchService%3B%0A%20%20const%20searchService%20%3D%20Components.classes%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28nsIBSS%29%3B%0A%0A%20%20if%28aEngineName.toUpperCase%28%29%3D%3D%3D%22CURRENT%22%29%7B%0A%20%20%20%20try%7B%0A%20%20%20%20%20%20var%20searchBar%20%3D%20BrowserSearch.getSearchBar%28%29%3B%0A%20%20%20%20%7Dcatch%28e%29%7B%0A%20%20%20%20%20%20var%20searchBar%20%3D%20BrowserSearch.searchBar%3B%20%20//fx3%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28searchBar%29%20return%20%20searchBar.currentEngine%3B%0A%20%20%7Delse%7B%0A%20%20%20%20var%20engine%20%3D%20searchService.getEngineByName%28aEngineName%29%3B%0A%20%20%20%20if%20%28engine%29%20return%20engine%3B%0A%20%20%7D%0A%20%20//Default%0A%20%20return%20Components.classes%5B%27@mozilla.org/browser/search-service%3B1%27%5D.getService%28Components.interfaces.nsIBrowserSearchService%29.defaultEngine%3B%0A%7D%0A%0A//%u691C%u7D22%u30D0%u30FC%u306E%u30C6%u30AD%u30B9%u30C8%u3067%u691C%u7D22%0Athat.searchForSearchBarTextValue%20%3D%20function%28aEngine%2C%20aEvent%29%20%7B%0A%20%20var%20searchBar%20%3D%20document.getElementById%28%22searchbar%22%29%3B%0A%20%20if%28searchBar.hasAttribute%28%22empty%22%29%29%20return%20false%3B%0A%20%20keyword%20%3D%20searchBar.value%3B%0A%0A%20%20var%20submission%20%3D%20aEngine.getSubmission%28keyword%2C%20null%29%3B%0A%20%20if%20%28%20%28aEvent.button%20%3D%3D%201%20%7C%7C%20aEvent.ctrlKey%29%20%26%26%20gBrowser.currentURI.spec%20%21%3D%20%22about%3Ablank%22%29%0A%20%20%20%20gBrowser.loadOneTab%28submission.uri.spec%2C%20null%2C%20null%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20submission.postData%2C%20false%29%3B%0A%20%20else%0A%20%20%20%20gBrowser.loadURI%28submission.uri.spec%2C%20null%2C%20submission.postData%29%3B%0A%20%20content.focus%28%29%3B%0A%0A%20%20if%20%28keyword%29%20%7B%0A%20%20%20%20keyword%20%3D%20keyword.substring%280%2C1024%29%3B%0A%20%20%20%20searchBar.textbox._formHistSvc.addEntry%28searchBar.textbox.getAttribute%28%22autocompletesearchparam%22%29%2Ckeyword%29%3B%0A%20%20%7D%0A%0A%20%20aEvent.preventDefault%28%29%3B%0A%20%20aEvent.stopPropagation%28%29%3B%0A%20%20return%20true%3B%0A%7D%0A%0A//%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u30C6%u30AD%u30B9%u30C8%u3092%u5F97%u308B%0Athat.getClipboardText%20%3D%20function%28%29%7B%0A%20%20try%20%7B%0A%20%20%20%20var%20clip%20%3D%20Components.classes%5B%22@mozilla.org/widget/clipboard%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIClipboard%29%3B%0A%20%20%20%20var%20trans%20%3D%20Components.classes%5B%22@mozilla.org/widget/transferable%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsITransferable%29%3B%0A%20%20%20%20trans.addDataFlavor%28%22text/unicode%22%29%3B%0A%20%20%20%20clip.getData%28trans%2C%20clip.kGlobalClipboard%29%3B%0A%0A%20%20%20%20var%20string%20%3D%20%7B%7D%3B%0A%20%20%20%20trans.getTransferData%28%22text/unicode%22%2C%20string%2C%20%7B%7D%29%3B%0A%20%20%20%20return%20string.value.QueryInterface%28Components.interfaces.nsISupportsString%29.data%3B%0A%20%20%7D%20catch%20%28e%29%20%7B%0A%20%20%20%20return%20%22%22%3B%0A%20%20%7D%0A%7D%0A%0A//%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u5185%u5BB9%u3067%u691C%u7D22%0Athat.searchForClipboardText%20%3D%20function%28aEngine%2C%20aEvent%29%20%7B%0A%20%20var%20keyword%20%3D%20that.getClipboardText%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%22%22%29%3B%0A%20%20if%20%28%21keyword%29%20return%20false%3B%0A%0A%20%20var%20searchBar%20%3D%20document.getElementById%28%22searchbar%22%29%3B%0A%20%20searchBar.value%20%3D%20keyword%3B%0A%20%20searchBar.removeAttribute%28%22empty%22%29%3B%0A%0A%20%20var%20submission%20%3D%20aEngine.getSubmission%28keyword%2C%20null%29%3B%0A%20%20if%20%28aEvent.ctrlKey%20%26%26%20gBrowser.currentURI.spec%20%21%3D%20%22about%3Ablank%22%29%0A%20%20%20%20gBrowser.loadOneTab%28submission.uri.spec%2C%20null%2C%20null%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20submission.postData%2C%20false%29%3B%0A%20%20else%0A%20%20%20%20gBrowser.loadURI%28submission.uri.spec%2C%20null%2C%20submission.postData%29%3B%0A%20%20content.focus%28%29%3B%0A%0A%20%20if%20%28keyword%29%20%7B%0A%20%20%20%20keyword%20%3D%20keyword.substring%280%2C1024%29%3B%0A%20%20%20%20searchBar.textbox._formHistSvc.addEntry%28searchBar.textbox.getAttribute%28%22autocompletesearchparam%22%29%2Ckeyword%29%3B%0A%20%20%7D%0A%0A%20%20aEvent.preventDefault%28%29%3B%0A%20%20aEvent.stopPropagation%28%29%3B%0A%20%20return%20true%3B%0A%7D%0A%0A//%u30A8%u30F3%u30B8%u30F3%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%u30E1%u30CB%u30E5%u30FC%u306E%u4F5C%u6210%0Athat.makeSelectEngine%20%3D%20function%28%29%7B%0A%20%20%20const%20nsIBSS%20%3D%20Components.interfaces.nsIBrowserSearchService%3B%0A%20%20%20const%20searchService%20%3DComponents.classes%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28nsIBSS%29%3B%0A%20%20%20var%20engines%20%3D%20searchService.getVisibleEngines%28%7B%20%7D%29%3B%0A%20%20%20var%20menupopup%20%3D%20document.getElementById%28%22button-contextpopup%22+that.id%29%3B%0A%20%20%20if%28menupopup%29%7B%0A%20%20%20%20%20while%28menupopup.lastChild%29%7Bmenupopup.removeChild%28menupopup.lastChild%29%3B%7D%0A%20%20%20%7Delse%7B%0A%20%20%20%20%20var%20menupopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%20%20%20%20%20menupopup.setAttribute%28%27id%27%2C%22button-contextpopup%22+that.id%29%3B%0A%20%20%20%20%20that.appendChild%28menupopup%29%3B%0A%20%20%20%7D%0A%20%20%20for%20%28var%20i%20%3D%20%200%3B%20i%20%3Cengines.length%3B%20i++%29%20%7B%0A%20%20%20%20%20var%20name%20%3D%20engines%5Bi%5D.name%3B%0A%20%20%20%20%20if%28%20name.match%28/%7D/%29%20%26%26%20%21name.match%28/%7B/%29%20%7C%7C%20%21name.match%28/%7D/%29%20%26%26%20name.match%28/%7B/%29%20%7C%7C%20name.match%28/%5E-%7B2%2C%7D%7C%5E%u2015%7B2%2C%7D/%29%29%20continue%3B%0A%20%20%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27label%27%2Cname%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27class%27%2C%27menuitem-iconic%27%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27oncommand%27%2C%22event.stopPropagation%28%29%3Bthis.parentNode.parentNode.setEngine%28%27%22+name+%22%27%29%3B%22%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27onclick%27%2C%22event.stopPropagation%28%29%3B%22%29%3B%0A%20%20%20%20%20if%20%28engines%5Bi%5D.iconURI%29%20%20menuitem.setAttribute%28%22src%22%2C%20engines%5Bi%5D.iconURI.spec%29%3B%0A%20%20%20%20%20menupopup.appendChild%28menuitem%29%3B%0A%20%20%20%7D%0A%7D%0A%0A//%u30A8%u30F3%u30B8%u30F3%u9078%u629E%0Athat.setEngine%20%3D%20function%28name%29%7B%0A%20%20if%28%21name%29%20name%20%3D%20that.getAttribute%28%27label%27%29%3B%0A%20%20that.setAttribute%28%27label%27%2Cname%29%3B%0A%20%20that.aEngine%20%3D%20that.getEngine%28name%29%3B%0A%20%20that.setAttribute%28%27image%27%2Cthat.aEngine.iconURI.spec%29%3B%0A%20%20that.tooltipText%20%3D%20document.getAnonymousElementByAttribute%28document.getElementById%28%22searchbar%22%29%2C%22anonid%22%2C%22searchbar-stringbundle%22%29.getFormattedString%28%22searchtip%22%2C%20%5Bthat.aEngine.name%5D%29+%22%20L%3ACurrentTab%20Ctrl+L%2CM%3ANewTab%2C%20or%20R%3AClipBoard%2C%20Shift+LMR%3A%20Menu%22%3B%0A%0A%20%20var%20UI%20%3D%20Components.classes%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Components.interfaces.nsIScriptableUnicodeConverter%29%3B%0A%20%20UI.charset%20%3D%20%22UTF-8%22%3B%0A%20%20var%20xpref%20%3D%20Components.classes%5B%22@mozilla.org/preferences-service%3B1%22%5D.getService%28Components.interfaces.nsIPrefBranch%29%3B%0A%20%20xpref.setCharPref%28%22custombuttons.engine.name.%22+that.id%2C%20UI.ConvertFromUnicode%28name%29%29%3B%0A%7D%0A%0A//%u30A8%u30F3%u30B8%u30F3%u9078%u629E%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%u30E1%u30CB%u30E5%u30FC%u8868%u793A%0Athat.showSelectEngine%20%3D%20function%28node%29%7B%0A%20%20var%20popup%20%3D%20document.getElementById%28%22button-contextpopup%22+that.id%29%3B%0A%20%20var%20x%20%3D%20node.boxObject.x%3B%0A%20%20var%20y%20%3D%20node.boxObject.y%20+%20node.boxObject.height%3B%0A%20%20document.popupNode%20%3D%20node%3B%0A%20%20popup.showPopup%28node%2C%20x%2C%20y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%7D%0A%0A//%u30DC%u30BF%u30F3%u30E1%u30CB%u30E5%u30FC%u8868%u793A%0Athat.showPopup%20%3D%20function%28node%29%20%7B%0A%20%20var%20popup%20%3D%20document.getElementById%28%22custombuttons-contextpopup%22%29%3B%0A%20%20var%20x%20%3D%20node.boxObject.x%3B%0A%20%20var%20y%20%3D%20node.boxObject.y%20+%20node.boxObject.height%3B%0A%20%20document.popupNode%20%3D%20node%3B%0A%20%20popup.showPopup%28node%2C%20x%2C%20y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%7D%0A%0A//%u30A4%u30D9%u30F3%u30C8%u30CF%u30F3%u30C9%u30E9%0A//%20---------------%20%20%20Event%20Detect%20%20%20------------------%0Athat.handle%20%3D%20function%28event%29%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%28event.shiftKey%20%26%26%20event.button%3D%3D2%29%20%7B%0A%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20that.makeSelectEngine%28%29%3B%0A%20%20%20%20%20%20that.showSelectEngine%28this%29%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%28event.shiftKey%20%29%20%7B%0A%20%20%20%20%20%20that.showPopup%28this%29%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20switch%28event.button%29%20%7B%0A%20%20%20%20case%200%3A%20//%20Left%20Click%0A%20%20%20%20%20%20that.searchForSearchBarTextValue%28that.aEngine%2C%20event%29%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20case%201%3A%20//%20Middle%20Click%0A%20%20%20%20%20%20that.searchForSearchBarTextValue%28that.aEngine%2C%20event%29%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20case%202%3A%20//%20Right%20Click%0A%20%20%20%20%20%20that.searchForClipboardText%28that.aEngine%2C%20event%29%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7Dcatch%28e%29%20%7Balert%28e%29%3B%7D%0A%20%20event.preventDefault%28%29%3B%0A%20%20event.stopPropagation%28%29%3B%0A%20%20return%20false%3B%0A%7D%0A%0A//%u8A2D%u5B9A%u3055%u308C%u305F%u30A8%u30F3%u30B8%u30F3%u3092%u30BB%u30C3%u30C8%0Atry%7B%20//Fx3%0A%20%20var%20xpref%20%3D%20Components.classes%5B%22@mozilla.org/preferences-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%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIPrefBranch2%29%3B%0A%7Dcatch%28e%29%7B%20//Fx2%0A%20%20var%20xpref%20%3D%20Components.classes%5B%22@mozilla.org/preferences-service%3B1%22%5D.getService%28Components.interfaces.nsIPrefBranch%29%3B%0A%7D%0Avar%20UI%20%3D%20Components.classes%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Components.interfaces.nsIScriptableUnicodeConverter%29%3B%0AUI.charset%20%3D%20%22UTF-8%22%3B%0Atry%7B%0A%20%20var%20name%20%3D%20xpref.getCharPref%28%22custombuttons.engine.name.%22+that.id%29%3B%0A%20%20that.setEngine%28UI.ConvertToUnicode%28name%29%29%3B%0A%7Dcatch%28e%29%7B%0A%20%20var%20name%20%3D%20that.getAttribute%28%27label%27%29%3B%0A%20%20%20%20%20%20%20%20that.setEngine%28name%29%3B%0A%7D%0A%0A//%u30AF%u30EA%u30C3%u30AF%u30A4%u30D9%u30F3%u30C8%u30BB%u30C3%u30C8%0Athat.setAttribute%28%22onclick%22%2C%20%22this.handle%28event%29%3B%22%29%3B%0A//%u30DC%u30BF%u30F3%u306E%u898B%u6804%u3048%0Athat.style.opacity%20%3D%20%27.65%27%3B%0Athat.setAttribute%28%27style%27%2C%27border-color%3A%20transparent%3B%27%29%3B%0Athat.setAttribute%28%22onmouseover%22%2C%20%22this.style.opacity%20%3D%20%271%27%3B%20this.setAttribute%28%27style%27%2C%27border-color%3A%20ThreeDHighlight%20ThreeDShadow%20ThreeDShadow%20ThreeDHighlight%3B%27%29%3B%22%20%29%3B%0Athat.setAttribute%28%22onmouseout%22%2C%20%22this.style.opacity%20%3D%20%27.65%27%3Bthis.setAttribute%28%27style%27%2C%27border-color%3A%20transparent%3B%27%29%3B%22%20%29%3B%0Athat.setAttribute%28%22onmousedown%22%2C%20%22this.setAttribute%28%27style%27%2C%27border-color%3A%20ThreeDShadow%20ThreeDHighlight%20ThreeDHighlight%20ThreeDShadow%3B%27%29%3B%22%29%3B%0Athat.setAttribute%28%22onmouseup%22%2C%20%22this.setAttribute%28%27style%27%2C%27border-color%3A%20ThreeDHighlight%20ThreeDShadow%20ThreeDShadow%20ThreeDHighlight%3B%27%29%3B%22%29%3B%0Athat.setAttribute%28%27style%27%2C%27border-color%3A%20transparent%3B%27%29%3B%0A%7D%2C1000%2C%20this%29%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%u4F7F%u3044%u65B9%0A/*%0A1.%20%u691C%u7D22%u30A8%u30F3%u30B8%u30F3%u306E%u6307%u5B9A%u65B9%u6CD5%0A%20%20%20%u65B9%u6CD51.%20%u30DC%u30BF%u30F3%u3092%u914D%u7F6E/%u8907%u88FD%u3057%2C%20Shift%u30AD%u30FC+%u53F3%u30AF%u30EA%u30C3%u30AF%3A%20%u30E1%u30CB%u30E5%u30FC%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%2C%20%u30A8%u30F3%u30B8%u30F3%u3092%u9078%u629E%0A%0A%20%20%20%u65B9%u6CD52.%20%u30DC%u30BF%u30F3%u3092%u914D%u7F6E/%u8907%u88FD%u3057%2C%20%u30DC%u30BF%u30F3%u7DE8%u96C6%u30A6%u30A4%u30F3%u30C9%u30A6%u306EName%u6B04%u306E%u5024%u3092%u691C%u7D22%u30A8%u30F3%u30B8%u30F3%u306E%u540D%u79F0%u3068%u3059%u308B%u3002%0A%20%20%20%20%20%20%20%20%20%20%u81EA%u52D5%u7684%u306B%u30A2%u30A4%u30B3%u30F3%u304C%u691C%u7D22%u30A8%u30F3%u30B8%u30F3%u306E%u3082%u306E%u306B%u306A%u308B%u3002%0A%0A2.%20%u691C%u7D22%u306E%u4ED5%u65B9%0A%20%20%20%u5DE6%u30AF%u30EA%u30C3%u30AF%3A%20%u691C%u7D22%u30D0%u30FC%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u73FE%u5728%u306E%u30BF%u30D6%u306B%u8868%u793A%0A%20%20%20%u4E2D%u30AF%u30EA%u30C3%u30AF%3A%20%u691C%u7D22%u30D0%u30FC%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u65B0%u898F%u30BF%u30D6%u306B%u8868%u793A%0A%20%20%20%u53F3%u30AF%u30EA%u30C3%u30AF%3A%20%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u73FE%u5728%u306E%u30BF%u30D6%u306B%u8868%u793A%0A%0A%20%20%20Ctrl%u30AD%u30FC+%u5DE6%u30AF%u30EA%u30C3%u30AF%3A%20%u691C%u7D22%u30D0%u30FC%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u65B0%u898F%u30BF%u30D6%u306B%u8868%u793A%0A%20%20%20Ctrl%u30AD%u30FC+%u4E2D%u30AF%u30EA%u30C3%u30AF%3A%20%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u65B0%u898F%u30BF%u30D6%u306B%u8868%u793A%0A%0A%20%20%20Shift%u30AD%u30FC+%u30AF%u30EA%u30C3%u30AF%3A%20%u30E1%u30CB%u30E5%u30FC%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%0A*/%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bsearch%20w/%20Searchbar%20Text%20or%20Clipboard%20Text%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E

Отсутствует

 

№127129-10-2009 14:14:53

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

Re: Custom Buttons

3Jlou

дополнить кнопку юзерагента

Выделить код

Код:

var меню =
<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       oncommand="this.parentNode.сменитьЮзерагент(event)">
    <menuitem type="radio" value="useragent1" label="юзерагент1"/>
    <menuseparator/>
    <menuitem type="radio" value="useragent2" label="юзерагент2"/>
    <menuitem type="radio" value="useragent3" label="юзерагент3"/>
</menupopup>;
меню = custombuttonsUtils. makeXML (меню);
this. orient = "horizontal";
this. type = "menu";
меню = this. appendChild (меню);
var ua = "";
try
{
    var ps = Components. classes ["@mozilla.org/preferences-service;1"]. getService (Components. interfaces. nsIPrefService). getBranch ("general.");
    ua = ps. getCharPref ("useragent.override");
    for (var i = 0; i < меню. childNodes. length; i++)
    {
        if (меню. childNodes [i]. value == ua)
        {
            меню. childNodes [i]. setAttribute ("checked", "true");
            break;
        }
    }
}
catch (e) {}
this. сменитьЮзерагент = function (событие)
{
    var юзерагент = событие. target. getAttribute ("value");
    var ps = Components. classes ["@mozilla.org/preferences-service;1"]. getService (Components. interfaces. nsIPrefService). getBranch ("general.");
    ps. setCharPref ("useragent.override", юзерагент);
}

Нужные юзерагенты надо заполнить самостоятельно.

okkamas_knife

1 каким образом мне присвоить переменной код определённой кнопки?(тот что выдаётся при выборе пункта меню копирование)
custombuttons.copyURI()  выдаёт только код той кнопки в которой он запущен

А каким образом добывается эта самая "определенная кнопка", для которой надо получить URI, название, иконку ?


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

Отсутствует

 

№127229-10-2009 14:40:01

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

Anton
о, замечательная кнопка смены юзерагента, а можно еще спросить, как ее дополнить, чтобы при смене юзерагента иконка у кнопки менялась на свою для каждого юзерагента?

Отсутствует

 

№127329-10-2009 15:04:05

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

Re: Custom Buttons

Можно добавить перед break
this. image = меню. childNodes [i]. getAttribute ("image");
перед var юзерагент = событие. target. getAttribute ("value");

Выделить код

Код:

this. image = событие. target. getAttribute ("image");

пунктам меню добавить атрибуты image:

Выделить код

Код:

<menuitem label="abc" value="def" image="ghi"/>

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

Отсутствует

 

№127429-10-2009 17:18:29

3Jlou
Участник
 
Группа: Members
Зарегистрирован: 14-08-2008
Сообщений: 211
UA: IE 8.0

Re: Custom Buttons

Anton, спасибо, всё работает :)

Отсутствует

 

№127531-10-2009 16:49:48

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

Re: Custom Buttons

okkamas_knife
Для кнопок, которые находятся на панелях:

Выделить код

Код:

var name, image, uri;
var buts = document. getElementsByTagName ("toolbarbutton");
for (var i = 0; i < buts. length; i++)
{
    if (buts [i]. getAttribute ("id"). indexOf ("custombuttons-button") == 0)
    {
        name = buts [i]. name;
        image = buts [i]. image || buts [i]. cbStdIcon;
        uri = buts [i]. URI;
    }
}

Для кнопок в palette:

Выделить код

Код:

function setText (doc, nodeName, text, make_CDATASection)
{
    var node = doc. getElementsByTagName (nodeName) [0], cds;
    if (!node)
        return;
    if (make_CDATASection)
    {
        try
        {
            cds = doc. createCDATASection (text || "");
        }
        catch (e)
        {
            cds = doc. createTextNode (text || "");
        }
        node. appendChild (cds);
    }
    else
    {
        node. textContent = text;
    }
}
var buts, doc, name, image, uri mode, code, initCode, accelkey, help;
buts = custombuttons. palette. getElementsByTagName ("toolbarbutton");
for (var i = 0; i < buts. length; i++)
{
    if (buts [i]. getAttribute ("id"). indexOf ("custombuttons-button") == 0)
    {
        name = buts [i]. getAttribute ("label");
        image = buts [i]. getAttribute ("image") || buts [i]. getAttribute ("cb-stdicon");
        mode = buts [i]. getAttribute ("cb-mode");
        code = buts [i]. getAttribute ("cb-oncommand");
        initCode = buts [i]. getAttribute ("cb-init");
        accelkey = buts [i]. getAttribute ("cb-accelkey");
        help = buts [i]. getAttribute ("Help") || buts [i]. getAttribute ("help") || "";
        doc = document. implementation. createDocument ("", "", null);
        doc. async = false;
        doc. load ("chrome://custombuttons/content/nbftemplate.xml");
        setText (doc, "name", name, false);
        setText (doc, "mode", mode, false);
        setText (doc, "image", image, true);
        setText (doc, "code", code, true);
        setText (doc, "initcode", initCode, true);
        setText (doc, "accelkey", accelkey, true);
        setText (doc, "help", help, true);
        var ser = new XMLSerializer ();
        var data = ser. serializeToString (doc);
        uri = "custombutton://" + escape (data);
        alert (uri);
    }
}
}catch(e){alert(e);}

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

Отсутствует

 

Board footer

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