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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№85105-06-2009 09:03:33

pyatikantrop
Участник
 
Группа: Members
Зарегистрирован: 27-05-2009
Сообщений: 29
UA: Firefox 3.0

Re: Custom Buttons

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

Отсутствует

 

№85205-06-2009 11:34:11

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.0

Re: Custom Buttons

спасибо

Отсутствует

 

№85312-06-2009 21:41:32

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.5

Re: Custom Buttons

Подскажите пожалуйста, как реализовать
Есть такой сайт - videosaver.ru, у них есть скрипт, который при вызове его из закладок автоматически выдает ссылки на медиа вконтакте итд. Если его просто вставить в текст кнопки - ничего не получается.
вот он:

Выделить код

Код:

javascript:var%20s=document.createElement('script');s.src='http://videosaver.ru/vs.js?nc='+Math.random();document.body.appendChild(s);void(0);

Как сделать так, что бы его можно было вызывать кнопкой, а не закладкой?
Спасибо

Отредактировано 150pi (12-06-2009 21:44:12)

Отсутствует

 

№85412-06-2009 21:57:06

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

Re: Custom Buttons

150pi пишет

Как сделать так, что бы его можно было вызывать кнопкой, а не закладкой?

"Завернуть" в loadURI:

Выделить код

Код:

loadURI ("javascript:var%20s=document.createElement('script');s.src='http://videosaver.ru/vs.js?nc='+Math.random();document.body.appendChild(s);void(0);");

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

Отсутствует

 

№85512-06-2009 23:07:50

150pi
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 28
UA: Firefox 3.5

Re: Custom Buttons

Спасибо! Работает!

Отсутствует

 

№85615-06-2009 13:24:08

Deim0s
Участник
 
Группа: Members
Зарегистрирован: 09-04-2008
Сообщений: 220
UA: Firefox 3.5

Re: Custom Buttons

Anton
Дело идёт к релизу 3.5 :). Есть проблема: во всех последних бетах и RC1 при запуске кнопки вот такого вида:

Выделить код

Код:

goDoCommand ("cmd_copy");
var path='D:\\Soft\\PRMT6\\PRMTX\\prmtx.exe';  var arguments=['']; var file = Components.classes['@mozilla.org/file/local;1']     .createInstance(Components.interfaces.nsILocalFile); var process = Components.classes['@mozilla.org/process/util;1']     .getService(Components.interfaces.nsIProcess);  file.initWithPath(path);   process.init(file);  process.run(false,arguments,arguments.length);

первый раз срабатывает нормально, при второй и последующих попытках запустить, в консоли появляется ошибка и приложение не запускается. Ошибка:

Выделить код

Код:

Ошибка: uncaught exception: [Exception... "Component returned failure code: 0xc1f30002 (NS_ERROR_ALREADY_INITIALIZED) [nsIProcess.init]"  nsresult: "0xc1f30002 (NS_ERROR_ALREADY_INITIALIZED)"  location: "JS frame :: chrome://custombuttons/content/cbbutton.js :: anonymous :: line 276"  data: no]

После перезапуска [firefox] всё так же: первый раз срабатывает, последующие та же ошибка.
Можно поправить как то?

P.S. Да и вообще все кнопки запускающие исполняемые файлы или скрипты, срабатывать один раз только стали, вернее срабатывает первый раз любая кнопка на запуск скрипта или .ехе после другие уже не работают. В ошибках отличается только последняя строка, после location: "JS frame :: chrome://custombuttons/content/cbbutton.js ::...

Отредактировано Deim0s (15-06-2009 14:48:51)

Отсутствует

 

№85715-06-2009 14:40:14

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

Re: Custom Buttons

Deim0s пишет

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

Кажется, оно: https://bugzilla.mozilla.org/show_bug.cgi?id=485379

Добавлено 15-06-2009 14:41:52
Можно посмотреть, как в IE Tab пофиксили: https://addons.mozilla.org/ru/firefox/a … 5.20090525 (chrome\content\ietabExtApp.js)

Добавлено 15-06-2009 14:46:05
P.S. В IE Tab:
Было:

Выделить код

Код:

var nsIProcess = Components.classes["@mozilla.org/process/util;1"].getService(Components.interfaces.nsIProcess);

Стало:

Выделить код

Код:

var nsIProcess = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);

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

Отсутствует

 

№85815-06-2009 14:58:34

Deim0s
Участник
 
Группа: Members
Зарегистрирован: 09-04-2008
Сообщений: 220
UA: Firefox 3.5

Re: Custom Buttons

Infocatcher
Вы правы. Заменил все getService на createInstance, всё работает как прежде. Спасибо.

Отсутствует

 

№85904-07-2009 22:13:36

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

Re: Custom Buttons

Помогите создать кнопки:
1. Манипуляция с сайдбаром закладок

Выделить код

Код:

toggleSidebar('viewBookmarksSidebar');

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

2. Фокусировка на URL панели
Есть код

Выделить код

Код:

var a = document.getElementById("nav-bar");
a.collapsed = !a.collapsed;

var uBar = document.getElementById("urlbar");
uBar.focus();
uBar.select();

При нажатии кнопки отображается панель адреса и курсор сразу же попадает туда и выделяет всю строку. Хотелось бы чтобы при повторном нажатии панель убиралась (это в принципе в этом коде уже есть) и потом срабатывало действие, которое можна вызвать клавишами Ctrl - Alt - F6 (тоесть сразу после этого можно двигать страницу клавишами стрелок "вверх","вниз")
Как же дописать дальше код ?

P.S. Хочу просто управлять браузером на телевизоре с пульта, поэтому такие извращения :)

Отсутствует

 

№86004-07-2009 23:46:54

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

Re: Custom Buttons

vurdalak пишет

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

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

Выделить код

Код:

toggleSidebar("viewBookmarksSidebar");
var sb = document.getElementById("sidebar");
if(sb.getAttribute("src") == "chrome://browser/content/bookmarks/bookmarksPanel.xul") {
	sb.addEventListener(
		"focus",
		function(e) {
			sb.removeEventListener(e.type, arguments.callee, true);
			var tree = sb.contentDocument.getElementById("bookmarks-view");
			tree.view.selection.select(0);
			setTimeout(
				function() { tree.focus(); },
				0
			);
		},
		true
	);
}

Добавлено 04-07-2009 23:55:07

vurdalak пишет

Хотелось бы чтобы при повторном нажатии панель убиралась (это в принципе в этом коде уже есть) и потом срабатывало действие, которое можна вызвать клавишами Ctrl - Alt - F6 (тоесть сразу после этого можно двигать страницу клавишами стрелок "вверх","вниз")

Про Ctrl+Alt+F6 не понял.
Вот так

Выделить код

Код:

var nb = document.getElementById("nav-bar");
nb.collapsed = !nb.collapsed;
if(nb.collapsed)
	content.focus();
else {
	var uBar = document.getElementById("urlbar");
	uBar.focus();
	uBar.select();
}

подойдет?


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

Отсутствует

 

№86105-07-2009 02:00:02

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

Re: Custom Buttons

:beer::beer::beer::beer::beer:
Спасибо, ну ты прям волшебник.

А насчет Ctrl+Alt+F6 то я перепутал, имелось ввиду Ctrl+Shift+F6

Отсутствует

 

№86205-07-2009 02:40:40

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

Re: Custom Buttons

:(
У меня сайдбар с закладками располагается внизу, благодаря расширению MultiSidebar
https://addons.mozilla.org/en-US/firefox/addon/4534
Как оказалось код манипуляции с сайдбаром закладок конфликтует с этим расширением


Наверное придеться искать другой способ расположить сайдбар с закладками внизу или может с кодом че-то придумать...

Отредактировано vurdalak (05-07-2009 02:41:16)

Отсутствует

 

№86305-07-2009 03:44:51

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

Re: Custom Buttons

vurdalak пишет

У меня сайдбар с закладками располагается внизу, благодаря расширению MultiSidebar

Там четыре разных сайдбара получается – с разными идентификаторами.
Должно работать:

Выделить код

Код:

var sbCmd = "viewBookmarksSidebar";

toggleSidebar(sbCmd);
var sbId = "sidebar" + ("MultiSidebar" in window ? MultiSidebar.getSidebarSuffix(sbCmd) : "");
var sb = document.getElementById(sbId);
var sbSrc = document.getElementById(sbCmd).getAttribute("sidebarurl");
if(sb.getAttribute("src") == sbSrc) {
	sb.addEventListener(
		"focus",
		function(e) {
			sb.removeEventListener(e.type, arguments.callee, true);
			var tree = sb.contentDocument.getElementById("bookmarks-view");
			setTimeout(
				function() {
					tree.view.selection.select(0);
					tree.focus();
				},
				0
			);
		},
		true
	);
}

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

Отсутствует

 

№86405-07-2009 04:05:22

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

Re: Custom Buttons

Несказанно благодарен

Отсутствует

 

№86506-07-2009 04:27:17

E_U
Участник
 
Группа: Members
Зарегистрирован: 05-07-2009
Сообщений: 4
UA: Firefox 3.5

Re: Custom Buttons

Здравствуйте! Можно ли добавить в панель инструментов кнопки из строки состояния? Интересуют кнопки дополнений QuickJava 0.4.2.1 (две кнопки - разрешить/запретить Java и разрешить/запретить JavaScript) и дополнения Yes Popups 0.9.8b (одна кнопка - разрешить/запретить всплывающие окна). Не нашел инструмента для того, чтобы посмотреть код кнопок этих дополнений, также не нашел инструмента для их перемещения. Помогите создать эти кнопки. Заранее спасибо!

Отсутствует

 

№86606-07-2009 14:36:23

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

Re: Custom Buttons

E_U

разрешить/запретить Java и разрешить/запретить JavaScript

Есть готовые здесь: http://xsms.nm.ru/custombuttons/en/ - последние две в самом низу страницы.

одна кнопка - разрешить/запретить всплывающие окна

Вот:

Выделить код

Код:

var ps = Components. classes ['@mozilla.org/preferences-service;1'].
	 getService (Components. interfaces. nsIPrefBranch);
var state = ps. getIntPref ("privacy.popups.disable_from_plugins");
switch (state)
{
	case 3:
		ps. setCharPref ("dom.popup_allowed_events", "change click dblclick mouseup reset submit");
		ps. setIntPref ("privacy.popups.disable_from_plugins", 0);
		this. image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUA//////8AAAAA/wCgg87HAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfVDAoRIQMsGKdHAAAAKklEQVR42mNgQANaqxqghP7/Bgau9TCCMx9EZAElOEMjGJAIrlUrkLQDAHhSD9klS8gFAAAAAElFTkSuQmCC";
		break;
	case 0:
		ps. setCharPref ("dom.popup_allowed_events", "");
		ps. setIntPref ("privacy.popups.disable_from_plugins", 3);
		this. image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUA//////8AAAD/AACNPwdYAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfVDAoRIRJGqIe1AAAAKklEQVR42mNgQANaqxqghP7/Bgau9TCCMx9EZAElOEMjGJAIrlUrkLQDAHhSD9klS8gFAAAAAElFTkSuQmCC";
		break;
}

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

Отсутствует

 

№86706-07-2009 14:50:40

E_U
Участник
 
Группа: Members
Зарегистрирован: 05-07-2009
Сообщений: 4
UA: Firefox 3.5

Re: Custom Buttons

Anton
Огромное спасибо! Теперь Firefox стал еще приятнее :)

Отсутствует

 

№86806-07-2009 16:03:11

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

Re: Custom Buttons

А что нужно прописать в кнопке, чтобы открыть нужную папку? (на программы такой код видел а вот на папки нет :()

Отредактировано Najlus (06-07-2009 17:40:20)


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

Отсутствует

 

№86906-07-2009 17:49:31

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

Re: Custom Buttons

Najlus пишет

А что нужно прописать в кнопке, чтобы открыть нужную папку?

Выделить код

Код:

function startProcess (path, args)
{
	var file = Components. classes["@mozilla.org/file/local;1"].
               createInstance (Components.interfaces.nsILocalFile);
	var process = Components. classes ["@mozilla.org/process/util;1"].
                  createInstance (Components. interfaces. nsIProcess);
	file. initWithPath (path);
	if (args == "")
	{
		file. launch ();
		return;
	} 
	process. init (file);
	if (!this. pid)
		this. pid = [];
	this. pid. push (process. run (false, [args], 1)); 
}
startProcess ("c:\\windows\\explorer.exe", "c:\\temp\\");

Не забывая про двойные слеши, в последней строчке вместо "c:\\temp\\" указываем нужный путь и, если необходимо, уточняем путь к explorer.exe.


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

Отсутствует

 

№87006-07-2009 18:12:21

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

Re: Custom Buttons

Не работает с папками с русским названием =( а мне именно с русским надо (у мя там куча торрентов на раздаче стоит, опять искать - дело неблагодарное)

Отредактировано Najlus (06-07-2009 18:42:31)


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

Отсутствует

 

№87106-07-2009 18:50:22

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

Re: Custom Buttons

Najlus пишет

Не работает с папками с русским названием

Тогда в последней строке так:

Выделить код

Код:

startProcess ("c:\\Новая папка\\", "");

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

Отсутствует

 

№87206-07-2009 18:56:56

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

Re: Custom Buttons

Спасибо Антон, всё работает =)


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

Отсутствует

 

№87310-07-2009 12:55:49

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

Re: Custom Buttons

Антон, извини что надоедаю, у меня проблема с переключением профилей без перезагрузки. Вот код:

/*CODE*/
var _href = null; // URL or null for use current page
var _paths = ["e:\\Program Files\\Mozilla Firefox\\firefox.exe", "e:\\Program Files\\Mozilla Firefox\\firefox.exe"];
var _args = [["-no-remote", "-p", "Default"], ["-no-remote", "-p", "experementals"]];
var _labels = ["Default", "experementals"];

this.runProcess = function(path, args) {
    args.push(_href ? _href : content.location.href);
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath(path);
    if(!file.exists() || !file.isExecutable() || /\.lnk$/i.test(path)) {
        alert("Invalid path!\n" + path);
        return;
    }
    var process = Components.classes["@mozilla.org/process/util;1"]
        .getService(Components.interfaces.nsIProcess);
    process.init(file);
    process.run(false, args, args.length);
};
var mp = document.createElement("menupopup");
var template = document.createElement("menuitem");
template.className = "menuitem-iconic";
template.setAttribute("oncommand", "_this.runProcess(this.path, this.args);");
var mi;
for(var i = 0, len = _paths.length; i < len; i++) {
    mi = template.cloneNode(true);
    mi.path = _paths[i];
    mi.args = _args[i];
    mi.label = _labels[i];
    mi.tooltipText = _paths[i] + " " + _args[i].join(" ");
    mi.setAttribute("image", "moz-icon:file://" + _paths[i]);
    mi._this = this;
    mp.appendChild(mi);
}
this.appendChild(mp);
this.type = "menu";
this.orient = "horizontal";

во первых: список возможно вызвать только после одного щелчка по кнопке (после которого и появляется стрелочка рядом с иконкой).
а во вторых: вместо переключения профиля слева от иконуи появляются квадратики:
b5bc804f4ded.png


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

Отсутствует

 

№87410-07-2009 15:07:39

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

Re: Custom Buttons

Najlus

во первых: список возможно вызвать только после одного щелчка по кнопке

Значит, указанный код находится не в том разделе. Перемести его в раздел "Инициализация". После этого должно "отвалиться" и "во-вторых".

И ещё: неплохо бы заменить строку

.getService(Components.interfaces.nsIProcess);

на

.createInstance(Components.interfaces.nsIProcess);


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

Отсутствует

 

№87510-07-2009 16:05:51

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

Re: Custom Buttons

При попытке перехода выдаёт окно менеджера профилей


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

Отсутствует

 

Board footer

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