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

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

№1212601-09-2017 18:09:27

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 52.0
Веб-сайт

Re: Custom Buttons

bunda1, Rag, большое спасибо!


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№1212701-09-2017 18:44:19

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

Re: Custom Buttons

bunda1 пишет

поэтому заменил

Зачем сразу заменять? Можно же разместить [ссылку(?)]
чуть ниже, ну как "возможно подправленный вариант для ...".
Тем более если у тебя не работает.

Отсутствует

 

№1212801-09-2017 19:39:02

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

Re: Custom Buttons

Dumby пишет

Зачем сразу заменять? Можно же разместить [ссылку(?)]
чуть ниже, ну как "возможно подправленный вариант для ...".
Тем более если у тебя не работает.

Так разницы нет, старый код тоже с e10 не работал на FF55.

Отсутствует

 

№1212901-09-2017 20:05:44

noknok
Участник
 
Группа: Members
Зарегистрирован: 27-02-2016
Сообщений: 68
UA: Firefox 49.0

Re: Custom Buttons

mokujin пишет

Всё средствами CB

  ЗАКРЫТЬ ВСЕ окна бравзера  - полный выход \ Restart с сохран. вкладок

Выделить код

Код:

//  ЗАКРЫТЬ ВСЕ окна бравзера  - полный выход  \ Restart с сохран. вкладок
//  Будут закрыты все окна CB, инспекторы и проч. окна 
 this.onclick = function(e) {
     switch (e.button) {
         case 0:
             goQuitApplication();
             break;
             
         case 1:
             Application.restart(); // СКМ 
             break;

//         case 2:
//             gShowPopup(this); //  ПКМ
//             break;
      }
 };
this.tooltipText = "ЛКМ -  Закрыть все окна (полный выход)\n\
СКМ - Перезагрузить бравзер\n\
------------------------------\n\
ПКМ - Меню кнопки";

Все разобрался. Извиняюсь что тупил. Давно кнопки не ставил.

Отсутствует

 

№1213003-09-2017 10:43:33

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 42.0

Re: Custom Buttons

А можно ли сделать такую вещь?
У меня по событию DOMContentLoaded функция перебирает все картинки на странице и на каждую картинку прикрепляет обработчик онклик. Но когда я прокручиваю страницу вниз, подгружаются новые картинки, которых не  было изначально.

Как бы сделать, чтобы они тоже получали обработчик онклик?

Отсутствует

 

№1213103-09-2017 12:02:41

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

Re: Custom Buttons

hartumov пишет

А можно ли сделать такую вещь?
У меня по событию DOMContentLoaded функция перебирает все картинки на странице и на каждую картинку прикрепляет обработчик онклик. Но когда я прокручиваю страницу вниз, подгружаются новые картинки, которых не  было изначально.

Как бы сделать, чтобы они тоже получали обработчик онклик?

Пример:

Выделить код

Код:

// Обработчик следит за загрузкой и переключением вкладки и запускают автовыделение .................
var listener = { 
   onStateChange: function(wpr, req, flag) {
      if ( gBrowser.currentURI.spec == 'chrome://global/content/console.xul') return; 
      if ( flag & Ci.nsIWebProgressListener.STATE_STOP ) Highlight("hits");
   },
      
   onLocationChange: function(wpr, req) {
      if ( wpr.currentURI.spec != "about:blank" && !req && wpr.document.readyState == "complete")
           Highlight("hits");
   }       
};
gBrowser.addProgressListener( listener );
addDestructor(function() gBrowser.removeProgressListener( listener ) );

Отсутствует

 

№1213203-09-2017 19:46:30

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 42.0

Re: Custom Buttons

bunda1
Это как я понял из кнопки Find или наподобие. А как приспособить этот код для моей цели?

Нельзя ли выложить готовый сниппет?

Отсутствует

 

№1213303-09-2017 20:15:31

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

Re: Custom Buttons

hartumov пишет

bunda1
Это как я понял из кнопки Find или наподобие. А как приспособить этот код для моей цели?

Укажи вместо Highlight("hits"); функцию которая у тебя перебирает все картинки на странице и на каждую картинку прикрепляет обработчик онклик.

Добавлено 03-09-2017 20:18:29

hartumov пишет

Нельзя ли выложить готовый сниппет?

Можно, но сложно. А что ты делаешь с изображениями на странице?

Отредактировано bunda1 (03-09-2017 20:18:29)

Отсутствует

 

№1213403-09-2017 22:48:37

tom911
Участник
 
Группа: Members
Зарегистрирован: 20-05-2011
Сообщений: 174
UA: Firefox 55.0

Re: Custom Buttons

bunda1
Dumby
Очень благодарен Вам, господа!

Отсутствует

 

№1213504-09-2017 09:25:23

intersk
Участник
 
Группа: Members
Зарегистрирован: 20-06-2013
Сообщений: 104
UA: Firefox 55.0

Re: Custom Buttons

Gladius333 пишет

sgretsch пишет: На 55 версии работает 0.0.5.8.9?. Может просто версия не пашет, поэтому все кнопки отвалились?intersk пишет: то же не работаетhttps://forum.mozilla-russia.org/viewto … 87&p=1Читаем главную шапку, и скачайте оттуда  этот файл "custombuttons@xsms.org.xpi", кидаем его в папку "FF\Profile\extensions".

не нашел там файл "custombuttons@xsms.org.xpi"
переустановил custom_buttons-0.0.5.8.9-fixed4-signed, вроде заработали все кнопки кроме стоп/перезагрузка страницы

Отсутствует

 

№1213604-09-2017 10:10:47

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

Re: Custom Buttons

intersk пишет

переустановил custom_buttons-0.0.5.8.9-fixed4-signed, вроде заработали все кнопки кроме стоп/перезагрузка страницы

26-08-2017 13:08:08

Отсутствует

 

№1213704-09-2017 10:21:32

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 42.0

Re: Custom Buttons

bunda1 пишет

А что ты делаешь с изображениями на странице?

Увеличиваю. А вернее, просто по клику открываю в оригинальном размере.
Те изображения, к которым я цепляю обработчик онклик - это превьюшки.

Отсутствует

 

№1213804-09-2017 11:00:48

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 42.0

Re: Custom Buttons

bunda1 я пока сделал так

Выделить код

Код:

content.document.addEventListener('DOMNodeInserted', function(e){
  if (e.target.nodeName=='IMG') e.target.onclick = function(){моя_Функция()}}, false)

Как подгружается на страницу новый элемент и если это картинка - то получает обработчик онклик.

Может можно что то упростить? А то код для меня выглядит громоздким.

Отредактировано hartumov (04-09-2017 13:13:33)

Отсутствует

 

№1213904-09-2017 19:52:42

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

Re: Custom Buttons

hartumov пишет

Может можно что то упростить? А то код для меня выглядит громоздким.

:rolleyes:

Выделить код

Код:

addEventListener("click", моя_Функция(), true, gBrowser);

Отсутствует

 

№1214004-09-2017 22:15:57

hartumov
Участник
 
Группа: Members
Зарегистрирован: 17-11-2013
Сообщений: 136
UA: Firefox 42.0

Re: Custom Buttons

bunda1 пишет
hartumov пишет

Может можно что то упростить? А то код для меня выглядит громоздким.

:rolleyes:

Выделить код

Код:

addEventListener("click", моя_Функция(), true, gBrowser);

bunda1 сделал как написано, все работает. Спасибо!

Одно только обидно: выходит зря я весь этот свой код сочинял, раз это все делается так просто? :(

Отсутствует

 

№1214105-09-2017 08:51:52

intersk
Участник
 
Группа: Members
Зарегистрирован: 20-06-2013
Сообщений: 104
UA: Firefox 55.0

Re: Custom Buttons

уже обсуждалось - но как отключить показ системного меню кнопки по правому клику? (а то закрывает функциональное меню кнопки)

Отсутствует

 

№1214205-09-2017 09:49:34

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

Re: Custom Buttons

intersk пишет

уже обсуждалось - но как отключить показ системного меню кнопки по правому клику? (а то закрывает функциональное меню кнопки)

В инициализацию:

Выделить код

Код:

this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };

Отсутствует

 

№1214305-09-2017 12:13:18

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

Поправьте пожалуйста кнопку. В 52.3.0 ESR не работает.
В консоли пишет: ReferenceError: convertFromUnicode is not defined

Сохранять изображение без запроса в указанную папку, из контекстного меню

Выделить код

Код:

// Сохранять изображение без запроса в указанную папку, из контекстного меню, от 28.08.2016. ................   
((contextMenu, viewimage) => {
   var path = 'C:\\qwerty';
   
   var menuItem = contextMenu.insertBefore(document.createElement("menuitem"), viewimage);
   menuItem.setAttribute("label", "Сохранить в указанную папку: " + path.split("\\").pop());
   addDestructor(()=> menuItem.remove());
   addEventListener("popupshowing", e=> menuItem.hidden = viewimage.hidden, false, contextMenu); 
   
   menuItem.onclick =()=> {
      var run = cbu.getPrefs("browser.download.folderList");
      var use = cbu.getPrefs("browser.download.useDownloadDir");
      try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } 
      catch(e) { var dir = Services.downloads.defaultDownloadsDirectory.path };
                
      cbu.setPrefs("browser.download.folderList", 2);
      cbu.setPrefs("browser.download.useDownloadDir", true);
      cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path));
      
      saveImageURL(gContextMenu.imageURL, 0, 0, 0, 1, null, content.document);
      
      cbu.setPrefs("browser.download.folderList", run);
      cbu.setPrefs("browser.download.useDownloadDir", use);
      cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir));
   }
})(document.getElementById("contentAreaContextMenu"), document.getElementById("context-viewimageinfo"));


«The Truth Is Out There»

Отсутствует

 

№1214405-09-2017 14:29:15

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

Re: Custom Buttons

unter_officer пишет

Поправьте пожалуйста кнопку. В 52.3.0 ESR не работает.
В консоли пишет: ReferenceError: convertFromUnicode is not defined

Выделить код

Код:

// Сохранять изображение без запроса в указанную папку, из контекстного меню, от 25.09.2017. ................   
((contextMenu, viewimage) => {
   var path = 'C:\\qwerty';
   
   var menuItem = contextMenu.insertBefore(document.createElement("menuitem"), viewimage);
   menuItem.setAttribute("label", "Сохранить в указанную папку: " + path.split("\\").pop());
   addDestructor(()=> menuItem.remove());
   addEventListener("popupshowing", e=> menuItem.hidden = viewimage.hidden, false, contextMenu); 
   
   menuItem.onclick =()=> {
      var run = cbu.getPrefs("browser.download.folderList");
      var use = cbu.getPrefs("browser.download.useDownloadDir");
      try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } 
      catch(e) { var dir = Services.downloads.defaultDownloadsDirectory.path };
                
      cbu.setPrefs("browser.download.folderList", 2);
      cbu.setPrefs("browser.download.useDownloadDir", true);
      cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path));
      
      saveImageURL(gContextMenu.imageURL, 0, 0, 0, 1, null, content.document);
      
      cbu.setPrefs("browser.download.folderList", run);
      cbu.setPrefs("browser.download.useDownloadDir", use);
      cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir));
   };

   function convertFromUnicode(charset, str) {
      var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
      converter.charset = charset;
      str = converter.ConvertFromUnicode(str);
      return str + converter.Finish();
   };
})(document.getElementById("contentAreaContextMenu"), document.getElementById("context-viewimageinfo"));

Отсутствует

 

№1214505-09-2017 14:38:12

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

bunda1
Этот вариант работает, но в консоли всё-равно появляется ошибка, правда другая:

DEPRECATION WARNING: saveImageURL should be passed the private state of the containing window.
You may find more details about this deprecation at: https://bugzilla.mozilla.org/show_bug.cgi?id=1243643
chrome://global/content/contentAreaUtils.js 154 saveImageURL
chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button1@init line 1 > Function 68 anonymous/</menuItem.onclick


«The Truth Is Out There»

Отсутствует

 

№1214605-09-2017 16:13:39

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

Re: Custom Buttons

unter_officer пишет

bunda1
Этот вариант работает, но в консоли всё-равно появляется ошибка, правда другая:

:/

Выделить код

Код:

// Сохранять изображение без запроса в указанную папку, из контекстного меню, от 25.09.2017. ................   
((contextMenu, viewimage) => {
   var path = 'C:\\qwerty';
   
   var menuItem = contextMenu.insertBefore(document.createElement("menuitem"), viewimage);
   menuItem.setAttribute("label", "Сохранить в указанную папку: " + path.split("\\").pop());
   addDestructor(()=> menuItem.remove());
   addEventListener("popupshowing", e=> menuItem.hidden = viewimage.hidden, false, contextMenu); 
   
   menuItem.onclick =()=> {
      var run = cbu.getPrefs("browser.download.folderList");
      var use = cbu.getPrefs("browser.download.useDownloadDir");
      try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } 
      catch(e) { var dir = Services.downloads.defaultDownloadsDirectory.path };
                
      cbu.setPrefs("browser.download.folderList", 2);
      cbu.setPrefs("browser.download.useDownloadDir", true);
      cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path));
      
      save();
      
      cbu.setPrefs("browser.download.folderList", run);
      cbu.setPrefs("browser.download.useDownloadDir", use);
      cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir));
   };
   
   function save() {
      var func = eval(
         gContextMenu.saveMedia.toSource()
            .replace(/(false,\s+)false,/, "$1true,")
            .replace(/^s/, "0,function s")
         );
      (save = () => func.call(gContextMenu))();
   };

   function convertFromUnicode(charset, str) {
      var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
      converter.charset = charset;
      str = converter.ConvertFromUnicode(str);
      return str + converter.Finish();
   };
})(document.getElementById("contentAreaContextMenu"), document.getElementById("context-viewimageinfo"));

Отсутствует

 

№1214705-09-2017 16:23:55

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

bunda1
Этот вариант работает отлично. Огромное спасибо за помощь.


«The Truth Is Out There»

Отсутствует

 

№1214807-09-2017 21:33:12

Ki_rrrilll
Участник
 
Группа: Members
Зарегистрирован: 22-11-2013
Сообщений: 127
UA: Firefox 43.0

Re: Custom Buttons

Если выделяем все на странице Ctrl + A а потом копируем.
Как можно сделать чтобы не копировался атрибут alt у картинок?
И вообще, чтоб копировался только видимый текст?

Отсутствует

 

№1214907-09-2017 23:41:20

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 52.0
Веб-сайт

Re: Custom Buttons

Ki_rrrilll пишет

Если выделяем все на странице Ctrl + A а потом копируем.
Как можно сделать чтобы не копировался атрибут alt у картинок?
И вообще, чтоб копировался только видимый текст?

Переключение ссылок и ярлыков

Выделить код

Код:

/* Toggle Links and Titles */
function TgLinks() {
var links = window.content.document.getElementsByTagName("a");
    for(var i = 0; i < links.length; i++) {
        var href = links[i].getAttribute('href');
        if(href != null) {
            links[i].removeAttribute('href');
            links[i].setAttribute('_href', href);
        } else {
            var href = links[i].getAttribute('_href');
            if(href != null) {
                links[i].setAttribute('href', href);
                links[i].removeAttribute('_href');
            }
        }
    }
var imgs = window.content.document.getElementsByTagName("img");
    for(var i = 0; i < imgs.length; i++) {
        var title = imgs[i].getAttribute('title');
        if(title != null) {
            imgs[i].removeAttribute('title');
            imgs[i].setAttribute('_title',title);
        } else {
            var title = imgs[i].getAttribute('_title');
            if(title != null) {
                imgs[i].setAttribute('title', title);
                imgs[i].removeAttribute('_title');
            }
        }
    }
}
addEventListener('keydown',function(e){
  if (!e.ctrlKey && e.altKey && !e.shiftKey && (e.keyCode==76))TgLinks(); 
},0,gBrowser);

this.onclick = function(e) {
 if ((e.button == 0)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) e.preventDefault(); 
 if ((e.button == 1)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) TgLinks();
}


Была кнопка "Переключение ссылок".
Она включала/отключала ссылки по нажатию на неё СКМ или по Alt-L
Я туда добавил включение/отключение ярлыков картинок (атрибут "alt" называется почему-то title а не alt :)
Короче, сейчас этот код включает/выключает сразу и ссылки и ярлыки картинок - по СКМ или Alt-L
Причём я убедился, что ярлык (скрытая подпись картинки - alt="что-то там") при наведении курсора пропадает.
Но :( :( :( при копировании это не пропадает, увы...:( :( :(


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№1215008-09-2017 04:31:29

Ki_rrrilll
Участник
 
Группа: Members
Зарегистрирован: 22-11-2013
Сообщений: 127
UA: Firefox 43.0

Re: Custom Buttons

difabor пишет
Ki_rrrilll пишет

Если выделяем все на странице Ctrl + A а потом копируем.
Как можно сделать чтобы не копировался атрибут alt у картинок?
И вообще, чтоб копировался только видимый текст?

Переключение ссылок и ярлыков

Выделить код

Код:

/* Toggle Links and Titles */
function TgLinks() {
var links = window.content.document.getElementsByTagName("a");
    for(var i = 0; i < links.length; i++) {
        var href = links[i].getAttribute('href');
        if(href != null) {
            links[i].removeAttribute('href');
            links[i].setAttribute('_href', href);
        } else {
            var href = links[i].getAttribute('_href');
            if(href != null) {
                links[i].setAttribute('href', href);
                links[i].removeAttribute('_href');
            }
        }
    }
var imgs = window.content.document.getElementsByTagName("img");
    for(var i = 0; i < imgs.length; i++) {
        var title = imgs[i].getAttribute('title');
        if(title != null) {
            imgs[i].removeAttribute('title');
            imgs[i].setAttribute('_title',title);
        } else {
            var title = imgs[i].getAttribute('_title');
            if(title != null) {
                imgs[i].setAttribute('title', title);
                imgs[i].removeAttribute('_title');
            }
        }
    }
}
addEventListener('keydown',function(e){
  if (!e.ctrlKey && e.altKey && !e.shiftKey && (e.keyCode==76))TgLinks(); 
},0,gBrowser);

this.onclick = function(e) {
 if ((e.button == 0)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) e.preventDefault(); 
 if ((e.button == 1)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey) TgLinks();
}


Была кнопка "Переключение ссылок".
Она включала/отключала ссылки по нажатию на неё СКМ или по Alt-L
Я туда добавил включение/отключение ярлыков картинок (атрибут "alt" называется почему-то title а не alt :)
Короче, сейчас этот код включает/выключает сразу и ссылки и ярлыки картинок - по СКМ или Alt-L
Причём я убедился, что ярлык (скрытая подпись картинки - alt="что-то там") при наведении курсора пропадает.
Но :( :( :( при копировании это не пропадает, увы...:( :( :(

Это не совсем то. alt это alt, а title - это title. Это разные атрибуты. Всплывающая подсказка - это тайтл. А альт мы видим на месте картинки если она по какой либо причине не загрузилась.
Ваш код удаляет тайтл, поэтому всплывающая подсказка пропадает. Но код не удаляет альт и поэтому альт есть в скопированном тексте.

Но спасибо за идею! :beer: Ведь ничто не мешает  таким же макаром удалять и альт. Что я и сделал - удаляю у всех картинок альт, выделяю все, копирую, а потом возвращаю все альты на место.

Отредактировано Ki_rrrilll (08-09-2017 04:34:38)

Отсутствует

 

Board footer

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