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

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

№1145109-03-2017 21:20:35

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9558
UA: Seamonkey 2.14

Re: Custom Buttons

mokujin
ну очевидно же вставить в цикл условие которое проверяет сначала наличие нужных атрибутов у элемента а потом их значение
element.hasAttribute(attName);//true or false
element.getAttribute(attributeName);

зы для оптимизации можно сначала запомнить атрибуты и стиль нужных элементов а потом пройдя по всем вернуть их назад.


я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3

Отсутствует

 

№1145209-03-2017 21:38:21

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

Re: Custom Buttons

mokujin пишет

Как сделать исключения для этого. Вот перекрашиваю все элементы страницы. А , допустим, нужно один или несколько элементов исключить. Известны их "названия" id или class.
Можно как-нить сделать исключение.

Выделить код

Код:

var elem = content.document.getElementsByTagName('*');

          for (var i = 0; i < elem.length; i++) {
                        elem[i].style.backgroundColor = "#FFFF00";
             };

:sick:

Эсли нужно исключить один элемент:

Выделить код

Код:

if ( elem[i].getAttribute('id') != 'тут id елемента' ) elem[i].style.backgroundColor = "#FFFF00";

Эсли нужно исключить несколько элементов:

Выделить код

Код:

if ( ["id1", "id2", "id2"].indexOf(elem[i].getAttribute('id')) ==-1 ) elem[i].style.backgroundColor = "#FFFF00";

Отсутствует

 

№1145309-03-2017 22:14:29

1fesFFFF
Участник
 
Группа: Members
Зарегистрирован: 22-01-2010
Сообщений: 252
UA: Firefox 52.0

Re: Custom Buttons

bunda1
Здравствуйте. Перестала работать кнопка поиска по сайту на FF 52 и "CB fixed 3"

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

Выделить код

Код:

// Настройка функций кликов мыши для кнопки .....................................
this.onclick = function(e) {
     
     if ( e.button == 0 ) {
          if ( getSelect() ) {
               var text = getSelect();
               }
          else
               {
               var value = custombuttons.promptBox('Поиск по сайту в Google', 'Bведите текст ....');
               var text = value[0] ? value[1] : false;
               if ( text == false ) return;
               }              
           searchInWebsite( text );  
           } 
               
     if ( e.button == 1 ) searchInWebsite( gClipboard.read() );
};



/* Запускает поиск по сайту в Google текста который передан
   как аргумент при вызове функции ...............................................*/ 
function searchInWebsite( text ) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + url;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};



/* Функция отдаст выделенный текст из страницы или текстового поля, 
   если текст не выделен отдаст 'false' ...........................................*/
function getSelect() {
  // выделенный текст из страницы ....
  var selection = document.commandDispatcher.focusedWindow.getSelection().toString();

  // выделенный текст из текстового поля ....
  if ( selection == '' ) {
       var theBox = document.commandDispatcher.focusedElement;
       if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
            var startPos = theBox.selectionStart;
        var endPos = theBox.selectionEnd;
        var selection = theBox.value.substring(startPos, endPos);  
            }
       };
         
  // убираем пробелы с обоих концов текста ....
  if ( selection !== '' ) var selection = selection.toString().replace(/^\s+|\s+$/g,"");
    
  return ( selection == '')? false: selection;
};



// Подсказка для кнопки .............................................................
this.tooltipText = "Поиск по сайту \nЛ: Поиск выделенного или введённого текста \nС: Поиск текста из буфера обмена \nП: CB меню";

Отсутствует

 

№1145409-03-2017 22:37:42

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

Re: Custom Buttons

1fesFFFF пишет

bunda1
Здравствуйте. Перестала работать кнопка поиска по сайту на FF 52 и "CB fixed 3"

Поиск по сайту в Google

Отсутствует

 

№1145509-03-2017 22:42:46

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 494
UA: Palemoon 27.0

Re: Custom Buttons

Ребят, благодарю! Рукужму :beer:
Я фигню_неправильную пробовал, из головы, типа (НЕ правильный код)

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

Выделить код

Код:

var elem = content.document.getElementsByTagName('*');
         var ex = content.document.getElementsByTagName('player');

          for (var i = 0; i < elem.length; i++) {
               if(elem != ex) {
                        elem[i].style.backgroundColor = "#FFFF00";
                        }
             };


... и оно ессно не работало.
А нужно это мне , чтоб дописать в кнопку Detach Tab by Infocatcher, чтоб оставался только плеер на странице.

upd. еще раз благодарю, парни.
Дошло сейчас, что видать я "не туда хочу". :(
Есть жеж зависимости(или как оно правильно) у элементов. Если закрасить вышестоящий , то закрасится и его "детеныш". Покрасить это для экспериментов, в конечном результате хотел убирать со страницы "всё_что_не_видеоплеер" (elem.style.display="none").  Дошло, что так просто нельзя это.
Есть кнопка Infocatcher наз-ся "Detach Tab". Открепляет вкладку голую, без адреса, панелей и проч. Отлично! А я хотел дописать туда сразу и код убирать_все_что_не_видеоплеер для нужных сайтов.
Нужно наверно, зная нужный id, например "#video-player" , брать всю цепочку вверх и их тоже исключать. Но это сложно для мя.
Есть похожее в другой кнопках (AttributeInspector и Delete Element) , узнать элемент выше искомого и так до начала... буду искать и пробовать.

Отредактировано mokujin (09-03-2017 22:44:43)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1145609-03-2017 23:48:36

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

Re: Custom Buttons

bunda1 пишет
Ki_rrrilll пишет

К сожалению проблемы с кодировками как раз и получились. А какие еще есть способы?

Выделить код

Код:

var path = "C:\\Documents and Settings\\Desktop\\Save.txt";
var text = custombuttonsUtils.readFile(path);
var utf8Converter = Cc["@mozilla.org/intl/utf8converterservice;1"].getService(Ci.nsIUTF8ConverterService);
var text = utf8Converter.convertURISpecToUTF8(text, "UTF-8");
alert(text);

bunda1
А это работает отлично!
Большое спасибо!

Отсутствует

 

№1145710-03-2017 01:07:24

Netto
наглая рыжая морда
 
Группа: Members
Откуда: Химки
Зарегистрирован: 25-11-2007
Сообщений: 137
UA: Firefox 51.0

Re: Custom Buttons

Помогите пожалуйста написать кнопку (у меня не получилось) для автоматической вставки выбранного изображения на хостинг http://imageban.ru/ с последующим получением HTML кода картинки (если это вообще возможно).

Отсутствует

 

№1145810-03-2017 07:07:57

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3141
UA: Firefox 52.0

Re: Custom Buttons

Можно сделать так, что бы пункт в контекстном меню появлялся на определенном домене, с возможностью редактирования списка доменов? Домены: www.kinopoisk.ru; www.fast-torrent.ru; rutracker.org; nnmclub.to
Оригинал кнопки

С нужными правками

Выделить код

Код:

var path = "X:\\SimpleTV\\tv.exe";


this.onclick =e=> {
   if ( e.button == 0 )
        play(content.location.href, "-open");
};


self.image = "moz-icon://file://" + path;
var playerName = path.split("\\").pop().replace(".exe","");
self.label = "Открыть в " + playerName;


var contextMenu = document.getElementById("contentAreaContextMenu"); 
var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open"));
menuitem.setAttribute("label", "Открыть в SimpleTV");      
menuitem.setAttribute("class", "menuitem-iconic");
menuitem.setAttribute("image", "moz-icon://file://" + path); 
menuitem.onclick =e=> play(gContextMenu.getLinkURL(), "-open");
addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onLink, false, contextMenu);
addDestructor(()=> menuitem.remove() );

    
function play(link, param) {
   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
   var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   file.initWithPath(path);
   process.init(file);
  process.run(false, [param, link], 2);
};


self.tooltipText = "Л: Открыть видео в " + playerName;

Отредактировано oleg.sgh (10-03-2017 07:18:12)

Отсутствует

 

№1145910-03-2017 08:12:45

Mishania
Участник
 
Группа: Members
Зарегистрирован: 22-10-2011
Сообщений: 356
UA: unknown 0.0

Re: Custom Buttons

oleg.sgh
И Ютуб конечно!

Отсутствует

 

№1146010-03-2017 08:22:36

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3141
UA: Firefox 52.0

Re: Custom Buttons

Mishania пишет

oleg.sgh
И Ютуб конечно!

Как по мне, просмотр ютуба в смпл не самый лучший  вариант
Открыть видео в PotPlayerMini
Если будет шаблон с доменами то, наверное, добавить/удалить домен не составит труда даже не особо сведущими в коде

Отсутствует

 

№1146110-03-2017 14:18:14

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 52.0

Re: Custom Buttons

Вопрос ко всем , кто в теме, и в первую очередь, к уважаемому bunda1
После обновления до 50ESR кнопка Menuitem hider стала глючить, то работает, то нет.
Особо заметил, после открытия любого всплывающего окна - авторизация итд
После перегруза - все ОК

Отсутствует

 

№1146210-03-2017 19:04:07

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

Re: Custom Buttons

Infocatcher
В FF 55.0a1 опять сломали консоль, base64-конвертер ...

скрытый текст
Всё потому, что выпилили nsISupportsArray. Пришлось править.
Посмотри пожалуйста, не слишком неправильно?

CustomButtonsService.js

Выделить код

Код:

var supportsArray = "@mozilla.org/supports-array;1" in Components. classes;
function makeSupportsArray () {
    var array = supportsArray
        ? Components. classes ["@mozilla.org/supports-array;1"]. createInstance (Components. interfaces. nsISupportsArray)
        : Components. classes ["@mozilla.org/array;1"]. createInstance (Components. interfaces. nsIMutableArray);
    var elt;
    for (var i = 0; i < arguments. length; i++)    {
        elt = Components. classes ["@mozilla.org/supports-string;1"]. createInstance (Components. interfaces. nsISupportsString);
        elt. data = arguments [i];
        supportsArray ? array. AppendElement (elt) : array. appendElement (elt, false);
    }
    return array;
}

editor2.js

Выделить код

Код:

arrayInterface: "@mozilla.org/supports-array;1" in Components. classes
        ? Components. interfaces. nsISupportsArray : Components. interfaces. nsIMutableArray
    ,

    setEditorParameters: function (param) {
        var editorParameters = param. wrappedJSObject. editorParameters;
        //if (editorParameters instanceof Components. interfaces. nsISupportsArray) {
        if (editorParameters instanceof this. arrayInterface) {

    ...

    observe: function (oSubject, sTopic, sData)    {
        var link = "custombutton://buttons/" + this. param. windowId + "/update/" + this. param. id;
        var topic = sTopic. replace (this. notificationPrefix, "");
        switch (topic) {
            case "updateImage":
                if ((sData == this. param. id) ||
                    (sData == this. tempId)) {
                    //var array = oSubject. QueryInterface (Components. interfaces. nsISupportsArray);
                    var array = oSubject. QueryInterface (this. arrayInterface);

Отсутствует

 

№1146310-03-2017 23:31:50

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

Re: Custom Buttons

Dumby пишет

Всё потому, что выпилили nsISupportsArray. Пришлось править.

О, круто, а я пока только успел посмотреть, что снова отвалилось всё.
Я было попробовал оставить только nsIMutableArray, но в старых версиях он не наследует от nsIArrayExtensions (которого тупо нет) и не умеет в GetElementAt().
Я немного посамовольничал, но суть все та же. Спасибо. :)
custom_buttons-0.0.5.8.9-fixed4.xpi | custom_buttons-0.0.5.8.9-fixed4-signed.xpi
+ http://custombuttons.sourceforge.net/fo … 176#p54176


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

Отсутствует

 

№1146414-03-2017 09:47:52

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

Re: Custom Buttons

Infocatcher пишет

Я немного посамовольничал, но суть все та же. Спасибо. :)
custom_buttons-0.0.5.8.9-fixed4.xpi | custom_buttons-0.0.5.8.9-fixed4-signed.xpi
+ http://custombuttons.sourceforge.net/fo … 176#p54176

нам нужно ставить новые обновленные версии?

Отсутствует

 

№1146514-03-2017 12:46:58

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

Re: Custom Buttons

intersk пишет

нам нужно ставить новые обновленные версии?

Лучше поставить.
Хотя, конечно, конкретно это исправление влияет только на Firefox 55.0a1+.
И еще была ошибка, проявлявшаяся в совсем старых версиях (я не стал проверять, какие версии были затронуты).


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

Отсутствует

 

№1146614-03-2017 14:31:35

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 51.0

Re: Custom Buttons

Infocatcher пишет

Лучше поставить.

В этой версии не работает "Копировать код в буфер", в отличии от этой, за которую вам огромное спасибо!

Отсутствует

 

№1146715-03-2017 12:03:17

patrit60
Участник
 
Группа: Members
Зарегистрирован: 15-03-2017
Сообщений: 1
UA: Chrome 55.0

Re: Custom Buttons

подскажите пожалуйста, как сделать так, чтобы под кнопкой (и на кнопке) была надпись (чтобы было понятно что она делает)?

Отредактировано patrit60 (15-03-2017 12:58:17)

Отсутствует

 

№1146815-03-2017 22:09:01

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

Re: Custom Buttons

vitalii201 пишет

В этой версии не работает "Копировать код в буфер"

Не воспроизводится. Может, расширение какое мешает?


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

Отсутствует

 

№1146916-03-2017 18:14:14

nafanja333
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 35
UA: Firefox 52.0

Re: Custom Buttons

Господа, после обновления до версии 52, перестали работать все кнопки.

Помогите, вернуть Custom Buttons в рабочее состояние :)

Отсутствует

 

№1147016-03-2017 19:12:34

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

Re: Custom Buttons

nafanja333 пишет

Господа, после обновления до версии 52, перестали работать все кнопки.
Помогите, вернуть Custom Buttons в рабочее состояние :)

http://custombuttons.sourceforge.net/fo … 176#p54176

Добавлено 16-03-2017 19:21:59

bezuma пишет

После обновления до 50ESR кнопка Menuitem hider стала глючить, то работает, то нет.
Особо заметил, после открытия любого всплывающего окна - авторизация итд
После перегруза - все ОК

Ни как не могу увидеть проблему, нужен пример.

Отредактировано bunda1 (16-03-2017 19:21:59)

Отсутствует

 

№1147116-03-2017 19:28:25

becool
Участник
 
Группа: Members
Зарегистрирован: 30-08-2014
Сообщений: 268
UA: Firefox 52.0

Re: Custom Buttons

Приветствую! А можно эти скрипты "портировать" на CB?
http://userscripts-mirror.org/scripts/show/100637
http://userscripts-mirror.org/scripts/show/58720

Отсутствует

 

№1147217-03-2017 06:00:24

dedfor
Участник
 
Группа: Members
Зарегистрирован: 22-12-2016
Сообщений: 62
UA: Chrome 56.0

Re: Custom Buttons

Подскажите, пожалуйста, почему не закрывается файл через 3 сек:

Выделить код

Код:

var file = Services.dirsvc.get("ProfD", Components.interfaces.nsIFile);
file.append("1.txt");
custombuttonsUtils.writeFile(file.path,convertFromUnicode("UTF-8","Слово"));                        
file.launch();
setTimeout(function(){file.close()},3000);

Отредактировано dedfor (17-03-2017 06:09:09)

Отсутствует

 

№1147317-03-2017 10:55:15

nafanja333
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 35
UA: Firefox 52.0

Re: Custom Buttons

bunda1 пишет
nafanja333 пишет

Господа, после обновления до версии 52, перестали работать все кнопки.
Помогите, вернуть Custom Buttons в рабочее состояние :)

http://custombuttons.sourceforge.net/fo … 176#p54176

Спасибо за информацию, помогло :)

Кто бы еще подсказал как эти дебильные проценты маштабирования из строки адреса убрать....

Отредактировано nafanja333 (17-03-2017 10:59:53)

Отсутствует

 

№1147417-03-2017 11:07:48

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3972
UA: Firefox 52.0

Re: Custom Buttons

:offtopic:

nafanja333 пишет

Кто бы еще подсказал как эти дебильные проценты маштабирования из строки адреса убрать....

https://forum.mozilla-russia.org/viewto … 94#p729794
Или Classic Theme Restorer

Отсутствует

 

№1147517-03-2017 11:23:55

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

Re: Custom Buttons

dedfor пишет

Подскажите, пожалуйста, почему не закрывается файл через 3 сек:

Выделить код

Код:

var file = Services.dirsvc.get("ProfD", Components.interfaces.nsIFile);
file.append("1.txt");
custombuttonsUtils.writeFile(file.path,convertFromUnicode("UTF-8","Слово"));                        
file.launch();
setTimeout(function(){file.close()},3000);

Потому что не такого метода file.close() для nsIFile, тут надо наверно надо закрывать текстовой редактор как процесс.

Отсутствует

 

Board footer

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