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

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

№112626-08-2009 18:21:46

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

Re: Custom Buttons

ishua пишет
Выделить код

Код:

loadURI('')

непроходит...

А

Выделить код

Код:

loadURI("")

?


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

Отсутствует

 

№112726-08-2009 20:01:54

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

Re: Custom Buttons

Anton :blush:
а ведь хотел попробовать, но подумал что не может быть так все просто :) лень черт побери, спасибо.

Отсутствует

 

№112827-08-2009 18:22:22

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

Re: Custom Buttons

Jarichek пишет

А можно зделать кнопочку История (Журнал), чтобы по ЛКМ выпадал список журнала (ну скажем последние 30 посещенных ссылок), ПКМ - открытие в боковой панели, а СКМ - открытие Журнала в отдельном окне?

Вот, что-то вроде:

Выделить код

Код:

var menu = document. getElementById ("goPopup"). cloneNode (true);
for (var i = 0; i < menu. childNodes. length; i++)
{
	if (menu. childNodes [i]. hasAttribute ("id"))
		menu. childNodes [i]. setAttribute ("hidden", "true");
}
menu. setAttribute ("place", "type=0&sort=4&maxResults=30");
this. appendChild (menu);
this. type = "menu";
this. orient = "horizontal";
this. onclick = function (event)
{
	var node = event. originalTarget. node;
	if ((event. button < 2) && node)
	{
		PlacesUIUtils. markPageAsTyped (node. uri);
		openUILink (node. uri, event, false, true);
	}
	else if (event. button == 1)
		PlacesCommandHook.showPlacesOrganizer('History');
	else if (event. button == 2)
	{
		if (event. shiftKey)
			return;
		toggleSidebar ("viewHistorySidebar");
		event. preventDefault ();
		event. stopPropagation ();
	}
};

Добавлено 27-08-2009 18:25:07

Есть расширение Personal Menu, оно при установке добавляет кнопку Закладок. Хочу спросить, возможно ли эту кнопку выдернуть в CB или там это сделано по другому совсем (может это не кнопка а кусок из меню переброшен :) )?

Простое копирование меню "Закладки":

Выделить код

Код:

var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true);
this. appendChild (menu);
this. type = "menu";
this. orient = "horizontal";

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

Отсутствует

 

№112927-08-2009 18:35:02

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

Re: Custom Buttons

Anton
Лучше бы рекурсивно потереть все идентификаторы.

Выделить код

Код:

var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true);
this. appendChild (menu);
this. type = "menu";
this. orient = "horizontal";

alert(document. getElementById ("bookmarksMenuPopup").parentNode.getAttribute("label"));

А теперь размести кнопку слева от панели меню.

Добавлено 27-08-2009 18:38:37

Выделить код

Код:

var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true);
function delId(node) {
	node.removeAttribute("id");
	Array.forEach(node.childNodes, delId);
}
delId(menu);

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

Отсутствует

 

№113027-08-2009 18:49:23

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

Re: Custom Buttons

Infocatcher

Лучше бы рекурсивно потереть все идентификаторы.

Это "убъёт" первую кнопку.


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

Отсутствует

 

№113127-08-2009 18:58:43

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

Re: Custom Buttons

Anton пишет

Это "убъёт" первую кнопку.

Так ведь

Выделить код

Код:

var menu = document. getElementById ("goPopup"). cloneNode (true);
for (var i = 0; i < menu. childNodes. length; i++)
{
    if (menu. childNodes [i]. hasAttribute ("id"))
        menu. childNodes [i]. setAttribute ("hidden", "true");
}

function delId(node) {
	node.removeAttribute("id");
	Array.forEach(node.childNodes, delId);
}
delId(menu);

На первый взгляд все нормально.

Добавлено 27-08-2009 19:01:50
Ну, кроме того, что список не хочет обновляться. Но он и с идентификаторами не хочет.

Отредактировано Infocatcher (27-08-2009 19:02:02)


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

Отсутствует

 

№113227-08-2009 19:05:44

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

Re: Custom Buttons

На первый взгляд все нормально.

Всё верно, это у меня баг был.


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

Отсутствует

 

№113327-08-2009 20:37:39

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

Re: Custom Buttons

Что-то я не совсем понял про кнопку закладок ... Добавил в Инициализацию вот этот код:

Выделить код

Код:

var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true);
this. appendChild (menu);
this. type = "menu";
this. orient = "horizontal";

alert(document. getElementById ("bookmarksMenuPopup").parentNode.getAttribute("label"));

Теперь при каждом запуске вылетает окно - "[Приложение Javascript] - Закладки". И еще вот эта кнопка клонировалась и появилась в Настройке панелей:

Выделить код

Код:

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%3E%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C/%u0441%u043A%u0440%u044B%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pref%3D%27permissions.default.image%27%3B%0Athis.setState%3Dfunction%28%29%7B%0A%09switch%28this.PS.getIntPref%28this.pref%29%29%0A%09%7B%0A%09case%201%3A%0A%09%09this.image%3D%20%27data%3Aimage/png%3Bbase64%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%3D%3D%27%3B%0A%09%09this.tooltipText%3D%20%27%u0417%u0430%u0433%u0440%u0443%u0436%u0430%u0442%u044C%20%u0432%u0441%u0435%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%27%3B%0A%09%20%09break%3B%0A%09case%202%3A%0A%09%09this.image%3D%0A%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+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/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAInSURBVHjaxJO9a5NhFMV/93me903exCS2qfUDWwvioNXqpEsXOylCcakuIujg4iIuUnDofyAILoJgKWIHq+hQsbh0EwQHh7qIWMV+JC1JmsT2/Xoehxas4iIOnu0Mh3vOveeKc45/geIfYZ6ODblovY61fycUgWKpjEGE1e6zVnafUDtzWUR5aOMjGR9fg6fAKMi4BKMEX4P2NPNzb2w0/1IZAeJMlxrsP0Lv43FUGOK0YfHqdVQuhzGaTBJRuHcHSRMIArzR26zVV1RtHgxAq71OkA+oXrzEwWtX0O02hdlZPo9PopRi3+ULqFYLt6NA49kLUlHI1voMQL3Zotlq072ri4WHj+g9fw7/6xcOnTm9mTcKsYUilckpdL6Aco7UbbuCsykLSxWWq6vozg4q0zNIGKKrFXS1goQhi9OvcaUS1lqsdVjkpwOXJiRJwnJ1ldpaizKwJ4qQKNoao1ACIoJSm0KH+9WBTVPSNEHV6wyMDJMCYbFIWCyRAOXBU3xfqhDFKdY6RNS2IqUJSRKjmk1O3rpBHGRp9h7g7fMZ3r+apd3XR5Tx6RoZJq7V2IgT6uvbHbgUF4Ucn3hAq7eHWv9R3t29TxwERNmAjxNPaBwboNmzH3/0JjYMiexmFJkaG3L5vYfr35oZq0WJMh7KeCjPc0r7iDZoz2DEoDV4AtqIW1v5IHpprtOYoKOxsfLJL/+h5r/xJAXSLRJnkVy+syH//Rt/DAD1m+M1u5mesgAAAABJRU5ErkJggg%3D%3D%27%3B%0A%09%09this.tooltipText%3D%20%27%u041D%u0435%20%u0437%u0430%u0433%u0440%u0443%u0436%u0430%u0442%u044C%20%u043A%u0430%u0440%u0442%u0438%u043D%u043A%u0438%27%3B%0A%09%09break%3B%0A%09case%203%3A%20%0A%09%09this.image%3D%0A%27data%3Aimage/png%3Bbase64%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%27%3B%0A%09%09this.tooltipText%3D%20%27%u0417%u0430%u0433%u0440%u0443%u0436%u0430%u0442%u044C%20%u043A%u0430%u0440%u0442%u0438%u043D%u043A%u0438%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u0441%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u0434%u043E%u043C%u0435%u043D%u0430%27%3B%0A%09%09break%3B%0A%09%7D%0A%7D%0A%0Athis.PS%3D%0A%20Components.classes%5B%27@mozilla.org/preferences-service%3B1%27%5D%0A%20.getService%28Components.interfaces.nsIPrefBranch%29%3B%0Athis.ob%3D%7B%7D%3B%0Athis.ob.observe%3Dthis.setState.bind%28this%29%3B%0Athis.PS.addObserver%28this.pref%2Cthis.ob%2Cfalse%29%3B%0Athis.setState%28%29%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0A%09case%201%3A%20this.PS.setIntPref%28this.pref%2C2%29%3Bbreak%3B%0A%09case%202%3A%20this.PS.setIntPref%28this.pref%2C3%29%3Bbreak%3B%0A%09case%203%3A%20this.PS.setIntPref%28this.pref%2C1%29%3Bbreak%3B%0A%7D%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

И что делать с этим:

Выделить код

Код:

var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true);
function delId(node) {
    node.removeAttribute("id");
    Array.forEach(node.childNodes, delId);
}
delId(menu);

А вот это надо было добавить в код кнопки Истории:

Выделить код

Код:

function delId(node) {
    node.removeAttribute("id");
    Array.forEach(node.childNodes, delId);
}
delId(menu);

?

Отсутствует

 

№113427-08-2009 21:25:13

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

Re: Custom Buttons

Jarichek
Взять код Антона и добавить

Выделить код

Код:

function delId(node) {
    node.removeAttribute("id");
    Array.forEach(node.childNodes, delId);
}
delId(menu);

перед

Выделить код

Код:

this. appendChild (menu);

(в обоих случаях)


Теперь при каждом запуске вылетает окно - "[Приложение Javascript] - Закладки".

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


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

Отсутствует

 

№113527-08-2009 21:54:10

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

Re: Custom Buttons

Infocatcher, Anton
Очередной раз вам огромное спасибо.
Остался один глюк, та кнопка, о которой я упомянул в предыдущем сообщении, она у меня находилась на панели и при добавлении кнопки История (в изначальном виде, без доработки) эта кнопка дублировалась в Настройке панелей инструментов, правда там иконки стали искаженными и на ней стандартное контекстное меню кнопки СВ не появляется, т.е. я не могу ее удалить никак. Посмотрел в файле buttonsoverlay.xul там ничего лишнего не заметил. Причем если эту кнопку тоже вынести на панель куда-нибудь, то если переключать одну из них, то и вторая аналогично переключается сама :) Как ее можно удалить?

Отсутствует

 

№113627-08-2009 22:01:26

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

Re: Custom Buttons

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


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

Отсутствует

 

№113727-08-2009 22:57:23

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

Re: Custom Buttons

Anton пишет

Если не поможет, мне бы надо знать, какие шаги я должен сделать, чтобы воспроизвести этот глюк.

Я воспроизвел только раскопирование CB-кнопок, но они получаются вполне полноценными и легко удаляются.


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

Отсутствует

 

№113827-08-2009 23:12:18

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

Re: Custom Buttons

Infocatcher
а у меня что-то не получается уже, но у меня вторая дублированная кнопка не удаляется, на ней стандартное меню кнопки Firefox, как например у Stop или Reload

Отсутствует

 

№113928-08-2009 14:04:18

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

Re: Custom Buttons

Jarichek пишет

но у меня вторая дублированная кнопка не удаляется, на ней стандартное меню кнопки Firefox

дико извиняюсь :blush: имеется 4 разных профиля над которыми провожу эксперименты и что-то не уследил, вторая кнопка оказалась от другого расширения.
еще хочу спросить кое-что (надоел совсем уже наверное). Anton, как в твоей кнопке "История" убрать срабатывание правой кнопки мыши в выпадающем списке, чтобы не открывалась боковая панель?
Попытался переделать кнопку "Закладки", вот что получилось:

Выделить код

Код:

var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true);
function delId(node) {
    node.removeAttribute("id");
    Array.forEach(node.childNodes, delId);
}
delId(menu);
this. appendChild (menu);
//this. type = "menu-button";
//this. orient = "horizontal";
this. setAttribute ("popup", menu. id = "cbBookmarks-" + this. id);

this. onclick = function (event)
{
   
    if (event. button == 1)
        PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId);
    else if (event. button == 2)
    {
        if (event. shiftKey)
            return;
        toggleSidebar('viewBookmarksSidebar');
        event. preventDefault ();
        event. stopPropagation ();
    }
};

как тут сделать, чтобы по правому клику на закладках появлялось стандартное меню (сейчас открывается в боковой панели), и по средней кнопке на закладках не появлялось окно для добавления в закладки?

Отсутствует

 

№114028-08-2009 18:54:43

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

Re: Custom Buttons

Jarichek

Anton, как в твоей кнопке "История" убрать срабатывание правой кнопки мыши в выпадающем списке, чтобы не открывалась боковая панель?

Для этого надо заменить строку

Выделить код

Код:

if (event. shiftKey)

на

Выделить код

Код:

if (event. shiftKey || (event. originalTarget. nodeName != "toolbarbutton"))
Jarichek пишет

как тут сделать, чтобы по правому клику на закладках появлялось стандартное меню (сейчас открывается в боковой панели), и по средней кнопке на закладках не появлялось окно для добавления в закладки?

Для этого надо убрать строку

Выделить код

Код:

this. onclick = function (event)

и всё, что после неё.


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

Отсутствует

 

№114128-08-2009 19:56:44

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

Re: Custom Buttons

Anton

Anton пишет

Для этого надо убрать строку и всё, что после неё.

Да нет, я хотел дополнить кнопку: СКМ - добавить страницу в закладки, а ПКМ - открытие в боковой панели :) С твоей подсказкой доделал и вроде все работает, вот что получилось:

Выделить код

Код:

var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true);
function delId(node) {
    node.removeAttribute("id");
    Array.forEach(node.childNodes, delId);
}
delId(menu);
this. appendChild (menu);
//this. type = "menu-button";
//this. orient = "horizontal";
this. setAttribute ("popup", menu. id = "cbBookmarks-" + this. id);

this. onclick = function (event)
{
    if (event. button == 1)
    {
    	if (event. originalTarget. nodeName != "toolbarbutton")
    	    return;
        PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId);
    }
    else if (event. button == 2)
    {
        if (event. shiftKey || (event. originalTarget. nodeName != "toolbarbutton"))
            return;
        toggleSidebar('viewBookmarksSidebar');
        event. preventDefault ();
        event. stopPropagation ();
    }
};

Надеюсь особых ошибок не наделал. Очередное спасибо!

Отсутствует

 

№114228-08-2009 23:33:41

alexmac
Участник
 
Группа: Members
Зарегистрирован: 05-03-2007
Сообщений: 63
UA: Opera 9.2

Re: Custom Buttons

Что могут означать следующие записи в консоле ошибок (при этом ни одна из кнопок не отображается.):
Предупреждение: Warning: cannot register non-local URI 'custombuttons://content/buttonsoverlay.xul' as an overlay.
Источник: custombuttons://content/buttonsoverlay.xul
Строка: 4
Предупреждение: Warning: cannot register non-local URI 'custombuttons://content/cbbutton.xul' as an overlay.
Источник: custombuttons://content/cbbutton.xul
Строка: 6
Failed to load XPCOM component: D:\FirefoxPortable3\Data\profile\extensions\{f759ca51-3a91-4dd1-ae78-9db5eee9ebf0}\components\idl\arIUnMHTProtocolHandler.idl

Отсутствует

 

№114328-08-2009 23:52:02

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

Re: Custom Buttons

alexmac пишет

Что могут означать следующие записи в консоле ошибок...

Это значит, что используется версия Custom Buttons 0.0.4.3 или более ранняя, а кроме того, установлено какое-нибудь расширение, которое при инициализации своих js xpcom сервисов загружает скрипты из chrome:// с помощью mozISubscriptLoader.

В общем, самое время обновить Custom Buttons до версии 0.0.4.4: http://custombuttons.mozdev.org/installation.html


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

Отсутствует

 

№114429-08-2009 18:23:25

Najlus
Рррррррррррь!
 
Группа: Extensions
Откуда: Город N
Зарегистрирован: 11-01-2009
Сообщений: 1988
UA: Firefox 3.5

Re: Custom Buttons

А можно ли как нибудь поднять строку поиска (вызываемую F3) где нибудь пикселей на 10 выше


Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями

Отсутствует

 

№114529-08-2009 21:59:12

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

Re: Custom Buttons

Najlus

А можно ли как нибудь поднять строку поиска (вызываемую F3) где нибудь пикселей на 10 выше

Строку поиска браузера ? Custom Buttons - не лучший инструмент для решения этой задачи. userChrome.css, я думаю, более подходит в данном случае.


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

Отсутствует

 

№114630-08-2009 12:09:07

Najlus
Рррррррррррь!
 
Группа: Extensions
Откуда: Город N
Зарегистрирован: 11-01-2009
Сообщений: 1988
UA: Firefox 3.5

Re: Custom Buttons

Anton пишет

Строку поиска браузера ?

именно её

userChrome.css, я думаю, более подходит в данном случае.

Ну через него тогда как нибудь можно?


Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями

Отсутствует

 

№114730-08-2009 13:46:14

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

Re: Custom Buttons

Najlus
Например #FindToolbar { height: 200px; }

А лучше спроси в теме Stylish, там участники лучше меня разбираются в css.


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

Отсутствует

 

№114831-08-2009 15:18:53

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

Re: Custom Buttons

Anton
В ОпереАС есть удобное меню "Цитировать с тегами", появляющееся на выделенном тексте. Вот как выглядит код в самом меню - Файл (бросил в файл, тут форум ругнулся на неверный синтаксис тегов BBCode). Тут используются функции из этого скрипта. Можно ли сделать подобную кнопку для СВ?

Отсутствует

 

№114931-08-2009 22:14:19

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

Re: Custom Buttons

Jarichek
Записываешь скрипт bbcode.js в файл, например c:\bbcode1.js
Код отсюда записываешь в файл, например c:\bbcode2.js
Код для кнопки

Выделить код

Код:

var doc = gBrowser. contentDocument;
var win = doc. defaultView;
win. navigator. lastFocusedTextArea = document.commandDispatcher.focusedElement;
var ssl = Components. classes ["@mozilla.org/moz/jssubscript-loader;1"].
	  getService (Components. interfaces. mozIJSSubScriptLoader);
if (!win. ujs_bbcode_tag)
	ssl. loadSubScript ("file:///C:/bbcode1.js", win);
ssl. loadSubScript ("file:///C:/bbcode2.js", win);

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

Отсутствует

 

№115031-08-2009 22:57:03

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

Re: Custom Buttons

Anton
Не совсем правильно работает. На данном форуме цитаты вставляет, но в тексте пропадают Enter'ы. На forum.ru-board.com вообще цитаты не работают:

Выделить код

Код:

Deprecated method document.getSelection() called.  Please use window.getSelection() instead.
Ошибка: c.parentNode.firstChild.innerText is undefined
Источник: custombutton://buttons/Firefox/code/custombuttons-button73
Строка: 4294967127

Кстати, когда первый раз когда пробовал эту кнопку, стояла версия 0.0.4.3 - так в ней показывалась правильно "Строка: 115" в ошибке. Установил новую версию, номер строки стал каким-то большим :)

Отсутствует

 

Board footer

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