Портируется все, но в силу неконтролируемого размножения у вас букв, настройки лучше не переносить, иначе избавиться вам от этой проблемы вряд ли удастся. Настроить потом можно. О создании нового профиля написано подробно в FAQ
Отсутствует
Подскажите пожалуйста, как реализовать
Есть такой сайт - 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)
Отсутствует
Как сделать так, что бы его можно было вызывать кнопкой, а не закладкой?
"Завернуть" в 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ентов на части порвет !!!
Отсутствует
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]
После перезапуска всё так же: первый раз срабатывает, последующие та же ошибка.
Можно поправить как то?
P.S. Да и вообще все кнопки запускающие исполняемые файлы или скрипты, срабатывать один раз только стали, вернее срабатывает первый раз любая кнопка на запуск скрипта или .ехе после другие уже не работают. В ошибках отличается только последняя строка, после location: "JS frame :: chrome://custombuttons/content/cbbutton.js ::...
Отредактировано Deim0s (15-06-2009 14:48:51)
Отсутствует
первый раз срабатывает нормально, при второй и последующих попытках запустить, в консоли появляется ошибка и приложение не запускается.
Кажется, оно: 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);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Помогите создать кнопки:
1. Манипуляция с сайдбаром закладок
А дальше нужно чтобы курсор сам установился на первый элемент (закладку) в сайдбаре. В смысле, чтобы была возможность клаишами стрелок "вниз" "вверх" передвигаться по сайдбару закладок сразу же после нажатия кнопки.
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. Хочу просто управлять браузером на телевизоре с пульта, поэтому такие извращения
Отсутствует
А дальше нужно чтобы курсор сам установился на первый элемент (закладку) в сайдбаре. В смысле, чтобы была возможность клаишами стрелок "вниз" "вверх" передвигаться по сайдбару закладок сразу же после нажатия кнопки.
Примерно вот так:
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
Хотелось бы чтобы при повторном нажатии панель убиралась (это в принципе в этом коде уже есть) и потом срабатывало действие, которое можна вызвать клавишами 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(); }
подойдет?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
У меня сайдбар с закладками располагается внизу, благодаря расширению MultiSidebar
https://addons.mozilla.org/en-US/firefox/addon/4534
Как оказалось код манипуляции с сайдбаром закладок конфликтует с этим расширением
Наверное придеться искать другой способ расположить сайдбар с закладками внизу или может с кодом че-то придумать...
Отредактировано vurdalak (05-07-2009 02:41:16)
Отсутствует
У меня сайдбар с закладками располагается внизу, благодаря расширению 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 ); }
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Здравствуйте! Можно ли добавить в панель инструментов кнопки из строки состояния? Интересуют кнопки дополнений QuickJava 0.4.2.1 (две кнопки - разрешить/запретить Java и разрешить/запретить JavaScript) и дополнения Yes Popups 0.9.8b (одна кнопка - разрешить/запретить всплывающие окна). Не нашел инструмента для того, чтобы посмотреть код кнопок этих дополнений, также не нашел инструмента для их перемещения. Помогите создать эти кнопки. Заранее спасибо!
Отсутствует
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ентов на части порвет !!!
Отсутствует
А что нужно прописать в кнопке, чтобы открыть нужную папку? (на программы такой код видел а вот на папки нет )
Отредактировано Najlus (06-07-2009 17:40:20)
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
А что нужно прописать в кнопке, чтобы открыть нужную папку?
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ентов на части порвет !!!
Отсутствует
Не работает с папками с русским названием а мне именно с русским надо (у мя там куча торрентов на раздаче стоит, опять искать - дело неблагодарное)
Отредактировано Najlus (06-07-2009 18:42:31)
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Не работает с папками с русским названием
Тогда в последней строке так:
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Спасибо Антон, всё работает
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Антон, извини что надоедаю, у меня проблема с переключением профилей без перезагрузки. Вот код:
/*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";
во первых: список возможно вызвать только после одного щелчка по кнопке (после которого и появляется стрелочка рядом с иконкой).
а во вторых: вместо переключения профиля слева от иконуи появляются квадратики:
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Najlus
во первых: список возможно вызвать только после одного щелчка по кнопке
Значит, указанный код находится не в том разделе. Перемести его в раздел "Инициализация". После этого должно "отвалиться" и "во-вторых".
И ещё: неплохо бы заменить строку
.getService(Components.interfaces.nsIProcess);
на
.createInstance(Components.interfaces.nsIProcess);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
При попытке перехода выдаёт окно менеджера профилей
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует