Attributes Inspector 0.6.0pre10 (2012-08-17)
x Исправлена подсветка узла под курсором с помощью inIFlasher в модальных окнах, открытых из окна, в котором был запущен Attributes Inspector.
* Немного оптимизирована отрисовка всплывающей подсказки.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
А возможно ли для кнопки Attributes Inspector добавить такую опцию:
Чтобы при клике на ней, окно браузера не вылезало на передний план
и не накрывало другие, предпологаемые к исследованию окна.
Отредактировано Dumby (17-08-2012 12:20:42)
Отсутствует
А возможно ли для кнопки Attributes Inspector добавить такую опцию:
Чтобы при клике на ней, окно браузера не вылезало на передний план
и не накрывало другие, предпологаемые к исследованию окна.
Опцию не получится – там весь код начинает работать только после клика по кнопке.
Для отдельной кнопки, в инициализацию:
this.onmouseover = function(e) { this.focusedWindow = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator) .getMostRecentWindow(null); }; this.onmouseout = function(e) { this.focusedWindow = null; }; this.setAttribute("oncommand", "this.focusedWindow && this.focusedWindow.focus();");
А это посложнее, для Extensions Developer Tools, например:
var focusManager = { button: this, focusedWindow: null, outTimer: 0, handleEvent: function(e) { switch(e.type) { case "mouseover": clearTimeout(this.outTimer); if(e.target == this.button) { var focusedWindow = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator) .getMostRecentWindow(null); this.focusedWindow = focusedWindow != window.top && focusedWindow; } break; case "mouseout": clearTimeout(this.outTimer); var rel = e.relatedTarget; if(!rel || !this.isChild(rel)) { this.outTimer = setTimeout(function(_this) { _this.focusedWindow = null; }, 500, this); } break; case "command": if(this.focusedWindow) { this.focusedWindow.focus(); this.focusedWindow = null; clearTimeout(this.outTimer); } } }, isChild: function(node) { for(; node; node = node.parentNode) if(node == this.button) return true; return false; } }; addEventListener("mouseover", focusManager, true, this); addEventListener("mouseout", focusManager, true, this); addEventListener("command", focusManager, true, this);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher, вот ещё наблюдение. Кнопка - cbEditorToggleOnTop.
Если открыть окно CB-редактора, сделать его OnTop, и в неразвёрнутом виде свернуть,
то после этого начинают происходить странные вещи.
Например, если вызвать окно "Настройка панелей инструментов", то оно, видимо,
возникает где-то за окном браузера, и выходит на передний план только если по окну браузера кликнуть.
Похожая ситуация наблюдается с alert'ами из других кнопок, и даже в DOM-инспекторе творится нечто подобное.
Может быть для сворачивания сделать что-то похожее на то, что и для разворачивания ?
Отсутствует
firepox, что-то никак не могу воспроизвести описанный тобой случай.Захожу на addons.mozilla.org,жму на свою поделку,в поле "Поиск:" - именно addons.mozilla.orgДа и вот специально разрешил им куки устанавливать - не хотят
Отредактировано Dumby (Сегодня 09:22:39)
через кнопку - должно быть в поле поиска mozilla.org!
Отсутствует
А как насчёт того, чтобы сделать удобную интеграцию с новым менеджером дополнений?
Вот стайлиш и скриптиш (ну или гризманки) - оба этих дополнения интегрировались в новый АОМ и теперь управлять стилями и скриптами можно из одного места, что удобно.
Может возможно сделать такое и для КБ? Ну чтобы был списочек всех имеющихся кнопочек. Чтобы было показано какие из них работают, а какие спрятаны (спрятаны - значит не работают). Чтобы можно было отключить или удалить ненужные.
На мой взгляд, это привлекло бы больше пользователей - ведь не все могут догадаться (хоть в каком-нибудь FAQе это и описано), что кнопка у которой своё контекстное меню при правом клике по ней - что чтобы удалить её - надо перед кликом правой сначала зажать ктрл/альт/шифт.
А потом можно будет слегка добавить функционала - чтобы установленные КБ кнопки умели бы обновляться (т.е. как вот в стайлише стили и скриптише). Тогда вообще юзеру и отслеживать никаких форумов не надо - были какие-то изменения в движке лисы и какая-нибудь кнопочка поламалась. Её автор быстро правит её, а юзер пока на форум не залезет - и не узнает, что есть исправленная версия. А так - нажал "проверить обновления" - а оно и говорит, что таковые имеются и предлагает их установить. Удобство. Ценой вашего труда
iDev.Pi
iDev.Pi пишетА как насчёт того, чтобы сделать удобную интеграцию с новым менеджером дополнений?
Вот стайлиш и скриптиш (ну или гризманки) - оба этих дополнения интегрировались в новый АОМ и теперь управлять стилями и скриптами можно из одного места, что удобно.
Может возможно сделать такое и для КБ?Возможно, но не во всех поддерживаемых CB приложениях новый менеджер дополнений, а делать две разные ветки кода мне бы не хотелось.
iDev.Pi пишетНу чтобы был списочек всех имеющихся кнопочек. Чтобы было показано какие из них работают, а какие спрятаны (спрятаны - значит не работают). Чтобы можно было отключить или удалить ненужные.
Списочек есть в планах, Infocatcher давно меня пинал в этом направлении. Когда-нибудь обязательно сделаю.
mzfx
Отсутствует
через кнопку - должно быть в поле поиска mozilla.org!
Ого ! Из твоего предыдущего поста это никак не вытекало
Ну да ладно, попробуй так:
var oSvc = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); var observer = { observe: function(subject, topic, data) { subject.addEventListener("load", this, false); }, handleEvent: function(e) { var doc = e.target; var win = doc.defaultView; win.removeEventListener("load", this, false); if (doc.location.href != "chrome://browser/content/preferences/cookies.xul") return; oSvc.removeObserver(observer, "domwindowopened", false); var filter = doc.getElementById("filter"); var host = gBrowser.contentDocument.location.host; var words = host.split("."); var theHost = words[words.length - 2] + "." + words[words.length - 1]; filter.value = theHost; window.setTimeout(function() {win.gCookiesWindow.filter();}, 250) }}; oSvc.addObserver(observer, "domwindowopened", false); var wm = Components. classes["@mozilla.org/appshell/window-mediator;1"]. getService (Components. interfaces. nsIWindowMediator); var win = wm. getMostRecentWindow ("Browser:Cookies"); if (win) { alert("Сначала закройте уже открытое окно с куками"); oSvc.removeObserver(observer, "domwindowopened", false); return; } else openDialog ("chrome://browser/content/preferences/cookies.xul", "_blank", "resizable,dialog=yes,centerscreen", null);
Отсутствует
через кнопку - должно быть в поле поиска mozilla.org!
Можно воспользоваться тестовой версией кнопки Cookies Permissions или вытащить оттуда нужный код (openCookiesPermissions: function() { ... , только там зависимостей много ).
Может быть для сворачивания сделать что-то похожее на то, что и для разворачивания ?
Да, все равно там при переходе в нормальное состояние делается восстановление. Осталось только отключить «поверх всех» при сворачивании.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
код кнопки, который удаляет все cookie кроме защищённых:
function removeUnprotectedCookies() { const type = "cookie"; var cm = Components.classes["@mozilla.org/cookiemanager;1"] .getService(Components.interfaces.nsICookieManager); var cp = Components.interfaces.nsICookiePermission; var pm = Components.classes["@mozilla.org/permissionmanager;1"] .getService(Components.interfaces.nsIPermissionManager); var io = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var remove = [ cp.ACCESS_DEFAULT, /*cp.ACCESS_ALLOW,*/ cp.ACCESS_DENY, cp.ACCESS_SESSION ]; var cookies = cm.enumerator; while(cookies.hasMoreElements()) { var cookie = cookies.getNext() .QueryInterface(Components.interfaces.nsICookie); var host = cookie.host; var uri = io.newURI("http://" + host, null, null); if(remove.indexOf(pm.testPermission(uri, type)) != -1) cm.remove(host, cookie.name, cookie.path, false); } } removeUnprotectedCookies(); var cbTitle = "Очистка"; // Title of the sliding alert var cbDesc = " Удалены все cookie кроме защищённых. "; // Instructions/Info to describe the event custombuttons.alertSlide(cbTitle, cbDesc);
Отсутствует
firepox
раскомментировать строку
в
mzfx
Отсутствует
Infocatcher
а возможно добавить сюда:
пункт - удалить ВСЕ куки
пожалуйста. )
Добавлено 17-08-2012 22:06:44
раскомментировать строку
спасибо! удаляет все! )
Добавлено 17-08-2012 22:09:40
iDev.Pi
помогите подправить код:
function removeUnprotectedCookies() { const type = "cookie"; var cm = Components.classes["@mozilla.org/cookiemanager;1"] .getService(Components.interfaces.nsICookieManager); var cp = Components.interfaces.nsICookiePermission; var pm = Components.classes["@mozilla.org/permissionmanager;1"] .getService(Components.interfaces.nsIPermissionManager); var io = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var remove = [ cp.ACCESS_DEFAULT, /*cp.ACCESS_ALLOW,*/ cp.ACCESS_DENY, cp.ACCESS_SESSION ]; var cookies = cm.enumerator; while(cookies.hasMoreElements()) { var cookie = cookies.getNext() .QueryInterface(Components.interfaces.nsICookie); var host = cookie.host; var uri = io.newURI("http://" + host, null, null); if(remove.indexOf(pm.testPermission(uri, type)) != -1) cm.remove(host, cookie.name, cookie.path, false); } } removeUnprotectedCookies(); var cbTitle = "Очистка"; // Title of the sliding alert var cbDesc = " Удалены все cookie кроме защищённых. "; // Instructions/Info to describe the event custombuttons.alertSlide(cbTitle, cbDesc);
спасибо!
Отредактировано firepox (17-08-2012 22:09:40)
Отсутствует
Да, все равно там при переходе в нормальное состояние делается восстановление. Осталось только отключить «поверх всех» при сворачивании.
Ага, так и знал, что вся инфраструктура для этого - уже заложена в коде. Ждём (но не торопим) новую версию.
Добавлено Сегодня 22:09:40
iDev.Pi
помогите подправить код:
Шутишь ? Этот код так "подправить" нельзя, "подправка" будет куда больше исходника,
считай - заново писать.
Отсутствует
firepox пишет: через кнопку - должно быть в поле поиска mozilla.org!Ого ! Из твоего предыдущего поста это никак не вытекало Ну да ладно, попробуй так:
скрытый текстскрытый текстВыделить кодКод:var oSvc = Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService);var observer = {
observe: function(subject, topic, data) {
subject.addEventListener("load", this, false); },
handleEvent: function(e) {
var doc = e.target;
var win = doc.defaultView;
win.removeEventListener("load", this, false);if (doc.location.href != "chrome://browser/content/preferences/cookies.xul") return;
oSvc.removeObserver(observer, "domwindowopened", false);
var filter = doc.getElementById("filter");
var host = gBrowser.contentDocument.location.host;
var words = host.split(".");
var theHost = words[words.length - 2] + "." + words[words.length - 1];
filter.value = theHost;
window.setTimeout(function() {win.gCookiesWindow.filter();}, 250) }};oSvc.addObserver(observer, "domwindowopened", false);
var wm = Components. classes["@mozilla.org/appshell/window-mediator;1"].
getService (Components. interfaces. nsIWindowMediator);
var win = wm. getMostRecentWindow ("Browser:Cookies");
if (win) {
alert("Сначала закройте уже открытое окно с куками");
oSvc.removeObserver(observer, "domwindowopened", false);
return; }
else
openDialog ("chrome://browser/content/preferences/cookies.xul", "_blank", "resizable,dialog=yes,centerscreen", null);
Отпишись в любом случае.
Спасибо!
теперь открывается как нужно! так же, как, если стандартно просматривать куки через браузер!
Добавлено 17-08-2012 23:04:28
еще вопрос:
постоянно нужно нажимать разрешить (
есть кнопка для быстрого добавления сайта в исключения?
или любое другое решение...
Отредактировано firepox (17-08-2012 23:04:28)
Отсутствует
пункт - удалить ВСЕ куки
пожалуйста. )
Можно, только в разрабатываемой версии не до конца проверенная экспериментальная фишка возможности сохранения cookies из открытых сайтов. А править сразу две версии лень.
Вот: http://forum.mozilla-russia.org/viewtop … 42#p577642
Заодно все же сделал отдельную тему.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
еще вопрос:
Popap-Toolbar!(Firefox) - Всплывающая панель - http://forum.mozilla-russia.org/viewtop … 72#p526972
установил, но не работает ( можно подправить?
...создал панель MyPanel - нужно, что бы при нажатии на кнопку - она скрывалась и появлялась.
Добавлено 17-08-2012 23:43:00
еще есть такая кнопка
установил, но ничего не происходит при нажатии на нее (
...ищу решение - быстрое добавление в исключения всплывающих окон.
Отредактировано firepox (17-08-2012 23:43:00)
Отсутствует
Ждём (но не торопим) новую версию.
Гулять, так гулять!
Пусть тоже отдельной темой будет: http://forum.mozilla-russia.org/viewtop … pid=577650
Сворачивание, вроде бы, исправил.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Отсутствует
Сворачивание, вроде бы, исправил.
Забрал по ссылке Toggle on Top 0.1.6, пока, в отношении сворачивания - всё по прежнему
(UPD: Так, чистый Firefox 10.0 Portable - нормально, пойду дальше проверять...)
(UPD2: А вот чистый Firefox 3.6.28 Portable - уже опять за старое...)
(UPD3: Infocatcher, вот странное дело:
Поставил внутрь функции handleEvent, прямо первой строчкой,
инструкцию, чтоб в консоль писала e.type, так вот, при сворачивании:
10.0 пишет - "sizemodechange", а 3.6.28 не пишет вообще ничего)
Отредактировано Dumby (18-08-2012 14:00:02)
Отсутствует
сделайте пожалуйста кнопку, что бы при нажатии появлялось "желтое" окно:
Вот так, незатейливо, проверяй:
var oSvc = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); var observer = { observe: function(subject, topic, data) { subject.addEventListener("load", this, false); }, handleEvent: function(e) { var doc = e.target; var win = doc.defaultView; win.removeEventListener("load", this, false); if (doc.location.href != "chrome://browser/content/preferences/preferences.xul") return; oSvc.removeObserver(observer, "domwindowopened", false); win.gContentPane.showPopupExceptions(); win.close(); }}; oSvc.addObserver(observer, "domwindowopened", false); openPreferences();
var params = { allowVisible: true, prefilledHost: "", permissionType: "popup", windowTitle: "Жёлтое окно", introText: "Разрешаем этим сайтам открывать всплывающие окна:" } openDialog ("chrome://browser/content/preferences/permissions.xul", "_blank", "resizable,dialog=yes,centerscreen", params);
Отредактировано Dumby (18-08-2012 18:11:19)
Отсутствует
10.0 пишет - "sizemodechange", а 3.6.28 не пишет вообще ничего)
Значит нормальный способ отследить сворачивание окна добавили только в Firefox 8.
Тем не менее, распорка: http://forum.mozilla-russia.org/viewtop … 50#p577650
Распорка, впрочем, не особо хороша с точки зрения производительности.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Ты здесь объяснял 18-05-2012 18:30:44 почему не все CSS коды работают в userChrome и userContent. А можно как то добавить этот флаг AGENT_SHEET для userChrome и userContent
Отсутствует