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

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

№507625-10-2012 15:59:40

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 950
UA: Firefox 16.0

Re: Custom Buttons

bunda1

bunda1 пишет

Сделал код каторый добавляет в контекстное меню раширеный на странице раширений about:addons новый пункт Открыть папку расширения ...

Если получилось, можешь запостить этот код? Было бы полезно!

Отредактировано Inko7 (25-10-2012 19:49:21)

Отсутствует

 

№507725-10-2012 20:27:16

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

Inko7 пишет

Если получилось, можешь запостить этот код? Было бы полезно!

Добавыть в контекстное меню раширений пункт "Открыть папку расширения"

Отсутствует

 

№507825-10-2012 23:02:15

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

villa7 пишет

Почему то у меня не дружат кнопки "Открыть новый таб двойным кликом левой кнопкой на титлебаре(Titlebar)"(у меня открывает по клику на панели вкладок) и "Двойной клик левой кнопкой на табе, закрыть страницу", по отдельности работают нормально, а если вместе то двойной клик по панели вкладок закрывает вкладку вместо открытия новой. Проверял на чистом профиле.

Выделить код

Код:

// Двойной клик левой кнопкой на табе закрывает страницу ...........
function TabClose(event) {
if ( event.button == 0 && event.target.nodeName == 'tab') {
     event.preventDefault();
     event.stopPropagation();
     
     gBrowser.removeCurrentTab(); // закрыть страницу
     }
};
this.onDestroy = function() {
    removeEventListener("dblclick", TabClose, false, gBrowser.mTabContainer);
};
addEventListener("dblclick", TabClose, false, gBrowser.mTabContainer);


// Двойной клик левой кнопкой на на титлебаре(Titlebar) открывает новый таб ............
if ( !this.hasAttribute("tabClickStop")) window.addEventListener("dblclick", function(event) {
if ( event.button == 0 && event.target.nodeName == 'tabs') {
     event.preventDefault();
     event.stopPropagation();

     var open = (  custombuttons.getPrefs("browser.tabs.onTop") && custombuttons.getPrefs("browser.tabs.drawInTitlebar") 
            && document.getElementById("toolbar-menubar").getAttribute("autohide") )
     if ( open == 'true' ) { BrowserOpenTab() }
     }
}, false);
this.setAttribute("tabClickStop","true");

Отсутствует

 

№507925-10-2012 23:13:05

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 16.0

Re: Custom Buttons

bunda1 пишет

// Двойной клик левой кнопкой на табе закрывает страницу ...........

Урааа!!! Работает, спасибо большое.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№508027-10-2012 20:20:55

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 950
UA: Firefox 16.0

Re: Custom Buttons

Хочу задать вопрос, может и глупый, но все же:
есть команда custombuttons.alertSlide("title", "description"). Время отображения этого алерта около 4-5 секунд. Можно ли регулировать время его показа?
Хочу, например, для некоторых время показа 1-2 секунды. Возможно?

Отсутствует

 

№508127-10-2012 20:49:24

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

Re: Custom Buttons

Inko7
Есть настройка alerts.totalOpenTime, но в Nightly ее уже удалили.

А так это

Выделить код

Код:

custombuttons. alertSlide = function (sTitle, sMsg)
{
 var as = Components. classes ["@mozilla.org/alerts-service;1"]. getService (Components. interfaces. nsIAlertsService);
 as. showAlertNotification ("chrome://custombuttons/skin/button.png", sTitle, sMsg, false, "", null);
};

https://developer.mozilla.org/en-US/doc … tion%28%29

+ chrome://global/content/alerts/alert.js и chrome://global/content/alerts/alert.css


А вот в Nightly только стилем:

Выделить код

Код:

@-moz-document url("chrome://global/content/alerts/alert.xul") {
    #alertBox[animate] {
        animation-duration: 16s !important;
    }
}

Или вообще никак:

Выделить код

Код:

function onAlertLoad() {
  const ALERT_DURATION_IMMEDIATE = 4000;
  ...
  if (Services.prefs.getBoolPref("alerts.disableSlidingEffect")) {
    setTimeout(closeAlert, ALERT_DURATION_IMMEDIATE);
    return;
  }

Можно только переопределить эту функцию.


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

Отсутствует

 

№508227-10-2012 21:00:51

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 950
UA: Firefox 16.0

Re: Custom Buttons

Infocatcher
Спасибо за развернутый ответ!

Отсутствует

 

№508327-10-2012 21:21:37

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

Inko7 пишет

Хочу, например, для некоторых время показа 1-2 секунды. Возможно?

Выделить код

Код:

var alertWin = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher)
               .openWindow(null, "chrome://global/content/alerts/alert.xul", "_blank", "chrome,titlebar=no,popup=yes", null);

alertWin.arguments = ["chrome://global/skin/icons/error-16.png", "Надо выделить текст", "qwerty", null, false, ""];
alertWin.setTimeout(function() { alertWin.close() }, 500);

Отсутствует

 

№508427-10-2012 21:36:46

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1343
UA: Firefox 10.0

Re: Custom Buttons

Infocatcher пишет

и chrome://global/content/alerts/alert.css

Файл не найден
Firefox не может найти файл jar:file:/// . . . /omni.ja!/chrome/toolkit/content/global/alerts/alert.css.  :cry:

Отсутствует

 

№508527-10-2012 21:47:36

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 950
UA: Firefox 16.0

Re: Custom Buttons

bunda1
Когда alerts.disableSlidingEffect=true, то очень даже нормально!
Но если слайдинг включен, то не очень красиво получается.

Отсутствует

 

№508627-10-2012 22:11:04

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

Inko7
Ну тогда не знаю.

Отсутствует

 

№508727-10-2012 22:12:40

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 950
UA: Firefox 16.0

Re: Custom Buttons

bunda1 пишет

Ну тогда не знаю.

Нет, этого уже много! Спасибо.

Отсутствует

 

№508827-10-2012 22:18:52

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

Inko7
Может нужно:

Выделить код

Код:

var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService);                
// стиль для изображение на сплывающей подсказке ....
var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
                                                      .getService(Components.interfaces.nsIStyleSheetService);
var uri = makeURI('data:text/css,'+ encodeURIComponent(' #alertImage { height: 25px !important; width: 25px !important; }'));
sss.loadAndRegisterSheet(uri, sss.USER_SHEET);
// обработчик удаляет стиль если сплывающая подсказка закрывается ....
                var listener = {
                         observe: function(subject, topic, data) {
                         if ( topic == 'alertfinished') sss.unregisterSheet(uri, sss.USER_SHEET);
                              }
                }
 // всплывающая подсказка ....
 alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png",  "qwerty", "изображение", false, "data", listener, "");

Отредактировано bunda1 (27-10-2012 22:19:42)

Отсутствует

 

№508927-10-2012 23:19:17

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

Re: Custom Buttons

Dumby пишет

Файл не найден

Этот файл есть в Nightly.
А вот в 16.0 и более ранних его нету, да.

Добавлено 27-10-2012 23:30:00

Inko7 пишет

Но если слайдинг включен, то не очень красиво получается.

Можно временно менять значение alerts.totalOpenTime.
А в Nightly загружать стиль, переопределяющий animation-duration.

Добавлено 27-10-2012 23:43:27

Infocatcher пишет

Можно временно менять значение alerts.totalOpenTime.

Выделить код

Код:

showAlertNotification("Title", "Message", 500);
function showAlertNotification(title, message, delay) {
    var totalOpenTime = Application.prefs.getValue("alerts.totalOpenTime", 4000);
    Application.prefs.setValue("alerts.totalOpenTime", delay);
    setTimeout(function() {
        if(Application.prefs.getValue("alerts.totalOpenTime", 4000) == delay)
            Application.prefs.setValue("alerts.totalOpenTime", totalOpenTime);
    }, 50); // Тут может понадобиться задержка побольше...
    Components.classes["@mozilla.org/alerts-service;1"]
        .getService(Components.interfaces.nsIAlertsService)
        .showAlertNotification(
            "chrome://custombuttons/skin/button.png",
            "Title",
            "Message",
            false,
            "",
            null
        );
}

Только будут проблемы, если одновременно выдать несколько таких сообщений.

С задержкой тоже неоднозначно.
Можно восстанавливать настройку после закрытия сообщения, но это будет еще больше мешать другим сообщениям.
И можно добавить наблюдателя открытия окон, ловить окно, дожидаться его загрузки (то есть дожидаться чтения настройки) и восстанавливать параметр. Но это муторно. :)

Отредактировано Infocatcher (27-10-2012 23:43:27)


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

Отсутствует

 

№509028-10-2012 00:01:23

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

Re: Custom Buttons

А вот извращение с учетом изменений в Nightly:

Выделить код

Код:

showAlertNotification("Title", "Message", 500);
function showAlertNotification(title, message, delay) {
    var win = window.openDialog(
        "chrome://global/content/alerts/alert.xul",
        "_blank",
        "chrome,titlebar=no,popup=yes",
        "chrome://custombuttons/skin/button.png",
        title,
        message,
        false,
        "",
        null
    );
    var totalOpenTime;
    win.addEventListener("DOMContentLoaded", function loader(e) {
        win.removeEventListener(e.type, loader, false);
        totalOpenTime = Application.prefs.getValue("alerts.totalOpenTime", undefined);
        if(totalOpenTime != undefined)
            Application.prefs.setValue("alerts.totalOpenTime", delay);
        var alertBox = win.document.getElementById("alertBox");
        if(alertBox && "animationDuration" in alertBox.style)
            alertBox.style.setProperty("animation-duration", delay + "ms", "important");
    }, false);
    win.addEventListener("load", function legacyLoader(e) {
        win.removeEventListener(e.type, legacyLoader, false);
        if(totalOpenTime != undefined) setTimeout(function() {
            if(Application.prefs.getValue("alerts.totalOpenTime", undefined) == delay)
                Application.prefs.setValue("alerts.totalOpenTime", totalOpenTime);
        }, 0);
    }, false);
}

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

Отсутствует

 

№509128-10-2012 10:28:36

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 950
UA: Firefox 16.0

Re: Custom Buttons

Infocatcher
Спасибо, полезно!

Отсутствует

 

№509205-11-2012 01:55:45

dennius
Участник
 
Группа: Members
Зарегистрирован: 29-09-2010
Сообщений: 36
UA: Firefox 19.0

Re: Custom Buttons

Перестала работать на [nightly] кнопка Stf - выделяю текст, появляется окно с выбором папки для сохранения, жму кнопку "сохранить" и окно закрывается. Но самого файла в папке нет. Это только у меня так или проблема в [nightly]?

Отсутствует

 

№509305-11-2012 02:14:53

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

dennius
Да Stf на Nightly не хочет работать, буду исправлять.
И другие кнопки для сохранения не работают, что за дела.

Отредактировано bunda1 (05-11-2012 02:18:41)

Отсутствует

 

№509405-11-2012 02:34:25

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

Re: Custom Buttons

bunda1 пишет

что за дела

Ошибка: TypeError: aInitiatingDocument is undefined
Источник: chrome://global/content/contentAreaUtils.js
Строка: 336

function internalSave(aURL, aDocument, aDefaultFileName, aContentDisposition,
                      aContentType, aShouldBypassCache, aFilePickerTitleKey,
                      aChosenData, aReferrer, aInitiatingDocument, aSkipPrompt,
                      aCacheKey)
{
  ...
  var persistArgs = {
    ...
    initiatingWindow  : aInitiatingDocument.defaultView
  };

И

function saveURL(aURL, aFileName, aFilePickerTitleKey, aShouldBypassCache,
                 aSkipPrompt, aReferrer, aSourceDocument)
{
  internalSave(aURL, null, aFileName, null, null, aShouldBypassCache,
               aFilePickerTitleKey, null, aReferrer, aSourceDocument,
               aSkipPrompt, null);
}

Отредактировано Infocatcher (05-11-2012 02:34:57)


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

Отсутствует

 

№509505-11-2012 02:43:34

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher
И что с этим делать? Код кнопки переделывать что ли. Или исправят сами?

Отсутствует

 

№509605-11-2012 03:26:37

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

Re: Custom Buttons

bunda1 пишет

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

Может и исправят, кто их знает. :)
Можно заменить

Выделить код

Код:

saveURL("data:text/plain," + encodeURIComponent( uri + ("\r\n\r\n" + getSelect() )), fileTitle + ".txt");

на

Выделить код

Код:

saveURL("data:text/plain," + encodeURIComponent( uri + ("\r\n\r\n" + getSelect() )), fileTitle + ".txt", null, false, false, null, content.document);

В общем, надо передавать в saveURL() все параметры, потому как добавленный aSourceDocument последний...


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

Отсутствует

 

№509705-11-2012 04:28:56

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher
Спасыбо, код работает.

Отсутствует

 

№509805-11-2012 08:55:08

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1343
UA: Firefox 10.0

Re: Custom Buttons

bunda1
Насчёт кнопки Настройки - парочка наблюдений:

Пустяки :)
1. В окошке настроек есть textbox'ы, есть filefield (ну или ещё что-нибудь, чего я не заметил),
    так вот им, наверное, лучше оставить двойной клик для выделения слова
    (а в Win7 и тройной для выделения строки)

2. Если окошко настроек уже открыто (не этой кнопкой), то если нажать кнопку,
    то она его только focus, а фича «...и дает возможность закрыть настройки по двойному клику...»
    не подключается. (хотя, может быть и не нужно...)

Без закрытия двойным кликом по странице, себе, вот так переписал:

Выделить код

Код:

var features = "chrome, dialog, titlebar, toolbar, " + "centerscreen, minimizable, resizable";

var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
var win = wm.getMostRecentWindow("Browser:Preferences");

// открыть настройки и фокус на настройки если они уже открыты ....
if ( !win ) win = window.openDialog("chrome://browser/content/preferences/preferences.xul", "Preferences", features, "General");
else win.focus();

win.ondblclick = function(e) {
    var node = e.target.nodeName;
    if (node == "textbox" || node == "filefield") return;
    this.close();
}

Отсутствует

 

№509905-11-2012 11:06:46

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 16.0

Re: Custom Buttons

Что-то не нашёл. Кнопка UP/Вверх. Перенаправляет на главную/самый верх (т.е. на forum.mozilla-russia.org ) или на список похожих страниц, если вы уже наверху. Хоткей Alt+Up.

скрытый текст

Выделить код

Код:

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%0A%20%20%3Cname%3EUP%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAdTAAAOpgAAA6lwAAF2+XqZnUAAAB2ElEQVR4nGL8//8/AzkAIICY0AUYJzLyA3E9IY0AAYSiEaQJSB0wlTJpALLn49MIEEAsaPwD+faZBoZqKgxrDoklADUz/M//n4hNI0AAwTWCbEg0jzEQlmZneP7rKUOonSsDGwM7SPMBoOaF6BoBAogJpslC2TRBQpqf4cvPLww/fv1kePbrMYOXhQ2DpojGAqB8PLpGgABiAgrmm6oYJjjpWwE1fQVq+sXwHagRpPkv82+GHt8WBi0RTZBme2SNAAHEyDCBYT+ULeCl72YgLSnEwMnKxiDFJc1QsbL9A1D8AlT+AtDJhTCNAAHEAuQ4Qp1rz8jIcABkEwh8//MTptgRW+AABBBKqH7+9YWB6zcrmP2D7ScDDzuPAjZNQEvOAwQQPB6BJh+8/OgaAwsTK8OP378YXn17zaAvo6OAHjAwPkAAodj4/suHBfdfPkkQ5RcE841VdBk+fPsIChgHIPcBEINckADCAAHEiJxWYSnHTtvSQJhfgIGFmYlBmleagesfL4MYqyTDorNLGc49O78AlCgAAogRPZFDNU9QEJVNkBKUZBDhE2L49u07w+VH1xlefnnVANTUCFIHEEAYGpEMkAdSBlB8gAESwh9h8gABhFMjIQAQYADQGKKCjfSDsAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E2%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20u%3DgetBrowser%28%29.currentURI%2Cp%3Du.scheme+%27%3A//%27%2Ch%3Du.host+%27/%27%3B%0Aif%28u.spec%3D%3Dp+h%29%7B%0A%20var%20a%3Dh.split%28%27.%27%29%2Cl%3Da.length%2Cn%3D2%3B%0A%20if%28l%3E2%29%7Bif%28a%5B0%5D%3D%3D%27www%27%29%7Ba.shift%28%29%3Bl--%7D%3Bif%28/%5E%28co%7Ccom%7Cnet%7Corg%7Cedu%7Cgov%7Cmil%7Cint%29%24/i.test%28a%5Bl-2%5D%29%29n++%7D%3B%0A%20if%28l%3En%29%7Bh%3D%28n%3D%3D3%3Fa%5Bl-3%5D+%27.%27%3A%27%27%29+a%5Bl-2%5D+%27.%27+a%5Bl-1%5D%7Delse%7Bp%3D%27http%3A//www.google.com/search%3Fq%3Drelated%3A%27+p%7D%0A%7D%3B%0AloadURI%28p+h%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5BAlt+UP%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано Lex1 (05-11-2012 11:25:18)

Отсутствует

 

№510005-11-2012 13:05:16

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 16.0

Re: Custom Buttons

Да, в сниппетах для получения адреса страницы предлагается использовать:
"Получить адрес текущей страницы: var url=getBrowser().currentURI.spec;"

А почему не getBrowser().contentWindow.location - какие-то проблемы?

Отсутствует

 

Board footer

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