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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№167618-03-2017 20:40:45

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

Re: Обсуждение кнопок CB

bunda1
Огромное спасибо, вы просто спаситель! Без таких как вы я бы давно уже сидел на edge. Как вы во всём этом разбираетесь? Тёмный лес.

Отсутствует

 

№167718-03-2017 20:51:11

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

Re: Обсуждение кнопок CB

Mishania пишет:

Как вы во всём этом разбираетесь?

Просто у меня память хорошая на коды.

Отсутствует

 

№167820-03-2017 00:19:31

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 382
UA: Seamonkey 2.40

Re: Обсуждение кнопок CB

bunda1
У кнопки "Индикация текущей раскладки фоном поля ввода" - как у старого варианта, так и у недавно опубликованного исправленного - имеется проблема со строкой поиска по странице (Ctrl-F): в оригинале, когда после очередной набранной буквы текст перестаёт находиться на странице, в этой строке цвет меняется на "белым по красному". Из-за действия кнопки получается "белым по почти белому".

Отсутствует

 

№167920-03-2017 08:55:20

Ultima2m
Участник
 
Группа: Members
Зарегистрирован: 28-11-2013
Сообщений: 311
UA: Firefox 52.0

Re: Обсуждение кнопок CB

bunda1
у кнопки Переключить JavaScript для сайтов отвалилась перезагрузка страницы.
Поправь, пожалуйста

Отсутствует

 

№168020-03-2017 09:50:21

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

Re: Обсуждение кнопок CB

У меня ещё просьба, видимо с переустановкой что-то напутал. Раньше у меня стояла кнопка которая делала код установки кликабельным и сразу с иконкой. Сейчас приходится самому копировать. Не могу найти что это делало, а без этого отвык. Поделитесь.

Отсутствует

 

№168120-03-2017 10:58:01

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

Re: Обсуждение кнопок CB

Mishania пишет:

Раньше у меня стояла кнопка которая

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

Выделить код

Код:

addEventListener(
    "DOMContentLoaded",
    function(e) {
        var doc = e.target;
        var win = doc.defaultView;
        if(win != win.top) // Ignore frames
            return;

if (doc.location.host=="forum.mozilla-russia.org"){
var boxes = [];
var pres = doc.getElementsByTagName("pre");

for(var i = 0, l = pres.length; i < l; ++i) {
        var pre = pres[i];
        if(pre.parentNode.parentNode.parentNode.className == "codebox")
            boxes.push(pre);
    }
for(var i = 0, l = boxes.length; i < l; ++i) {
        var box = boxes[i];
        if(box.hasAttribute("data-highlight-js-parsed"))
            continue;
        box.setAttribute("data-highlight-js-parsed", "true");

        // Special "codes"
        var tc = box.textContent;
        if(
            /^custombutton:\/\/\S+%3C\/custombutton%3E\s*$/.test(tc)
            || /^data:[\w-]+\/[\w-]+;base64,\S+\s*$/.test(tc)
        ) {
            tc = tc.replace(/\s+$/, "");
            var a = doc.createElement("a");
            a.href = tc;

            var icon;
            if(/^data:image\//.test(tc))
                icon = tc;
            else if(
                /^custombutton:\/\//.test(tc)
                && /%3Cimage%3E%3C%21%5BCDATA%5B(data%3A\S+)%5D%5D%3E%3C\/image%3E/.test(tc)
            )
                try { icon = decodeURIComponent(RegExp.$1); } catch(e) {}
            if(icon) {
                var img = doc.createElement("img");
                img.src = icon;
                img.alt = "";
                var s = img.style;
                s.marginRight = "4px";
                s.verticalAlign = "middle";
                a.appendChild(img);
            }

            a.appendChild(doc.createTextNode(tc));
            var s = a.style;
            s.background = "none";
            s.margin = s.padding = 0;

            box.innerHTML = "";
            box.appendChild(a);
            continue;
        }
    }

  }
},
    true,
    document.getElementById("appcontent")
);

Отсутствует

 

№168220-03-2017 11:09:12

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

Re: Обсуждение кнопок CB

Uxapb
Спасибо.

Отсутствует

 

№168320-03-2017 11:25:43

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

Re: Обсуждение кнопок CB

Ultima2m пишет:

bunda1
у кнопки Переключить JavaScript для сайтов отвалилась перезагрузка страницы.

А e10 включен?

Отсутствует

 

№168420-03-2017 12:00:32

Ultima2m
Участник
 
Группа: Members
Зарегистрирован: 28-11-2013
Сообщений: 311
UA: Firefox 52.0

Re: Обсуждение кнопок CB

bunda1 пишет:

А e10 включен?

Нет, отключен.
В кнопке Загружать изображения на страницах перезагрузка работает.
Может, позаимствовать можно?

Отсутствует

 

№168520-03-2017 13:05:49

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

Re: Обсуждение кнопок CB

Ultima2m пишет:

В кнопке Загружать изображения на страницах перезагрузка работает.
Может, позаимствовать можно?

В кнопке Загружать изображения на страницах и Переключить JavaScript для сайтов одинаковые коды перезагрузки страницы -  BrowserReload() и у меня на FF52 + Переключить JavaScript для сайтов перегрузка страницы работает. Может так попробуй:

Выделить код

Код:

// Настройка функций кликов мыши для кнопки ..............
this._handleClick =()=> {
   var scriptEnabled = gBrowser.docShell.allowJavascript; // текущее состояние JavaScript на странице

   var currHost = content.document.domain;
   if ( !currHost ) return;

   saveTextToHelp(currHost, scriptEnabled);
   tabsReload(false, currHost, !scriptEnabled);
};


// Получаем из вкладки 'Справка' массив с доменами ..............
var hosts = self.getAttribute('Help').split('\n').filter((host)=> /\S/.test(host)).map((host)=> host.trim());


// Перегрузить и переключить JavaScript для текущей вкладки или вкладок сайта или всех сайтов из массива .............. 
function tabsReload( reason, currHost, scriptEnabled ) {
   if ( reason == 'destructor' ) return;
   if ( reason ) scriptEnabled = reason != 'update';

   // переключить текущую вкладку если левый клик на кнопке
   if ( !reason ) {
        gBrowser.docShell.allowJavascript = scriptEnabled; 
        setTimeout(()=> BrowserReload(), 500);
        };

   // Сплывающая подсказка ....
   var notification  = reason 
                       ? 'Перегрузить все вкладки сайтов из списка'
                       : 'Перегрузить все вкладки сайта'; 
   var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
   alertsService.showAlertNotification(self.image, self.label, notification, true, "", listener, "");
   
   // стиль сплывающей подсказки
   var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
   var uri = makeURI('data:text/css,'+ encodeURIComponent('\
      #alertImage { height: 35px !important; width: 35px !important; }\
      #alertNotification:hover { cursor: pointer !important; }\
      #alertTextLabel { color: #0000FF !important; text-decoration: underline; }\
   '));
   sss.loadAndRegisterSheet(uri, 0);
   
   // удалить стиль и подсказку через указанное время
   setTimeout(()=> { sss.unregisterSheet(uri, 0); alertsService.closeAlert(); }, 4000); 
    
   // переключить вкладки сайта или всех сайтов из массива если кликнуть на подсказке
   function listener(subject, topic, data) {
      if ( topic !== 'alertclickcallback' ) return;
      
      var currTab = gBrowser.mCurrentTab;
      for( var tab of gBrowser.tabs ) {
           var uri = tab.linkedBrowser.currentURI;
           if ( !uri.scheme.startsWith("http") ) continue;   
           
           var tabHost = tab.linkedBrowser.contentDocument.location.host;
           if ( tabHost == '' ) return;

           var tabReload = reason 
                           ? hosts.indexOf(tabHost) !== -1 
                           : tab !== currTab && tabHost == currHost;             
           if ( tabReload ) {
                tab.linkedBrowser.docShell.allowJavascript = scriptEnabled;
                gBrowser.reloadTab(tab);
                }
           }
   }
};
addDestructor(tabsReload);


// Записать текст в вкладку 'Справка' ..............
function saveTextToHelp(currHost, addHost) {
   // удалить или добавить текущий сайт в массив с доменами
   addHost
   ? hosts.push(currHost)     
   : hosts = hosts.filter((host)=> { return (host !== currHost) })   
   var value = hosts.join("\n");

   // записать массив
   var dir = Services.dirsvc.get("ProfD", Ci.nsIFile);
   dir.initWithPath(dir.path + "\\extensions\\custombuttons@xsms.org\\components\\CustomButtonsService.js");
   var url = Services.io.newFileURI(dir).spec, cbs = {};
   Services.scriptloader.loadSubScript(url, cbs);
   var AO = new cbs.AppObject(), btn = AO.getButton(_id);

   self.setAttribute("Help", value);
   btn.setAttribute("Help", value);
   AO.overlay.saveOverlayToProfile();   
};


// Обработчик следит за изменениями табов и запускают нужные коды и функции ..............
addEventListener("TabAttrModified", e=> {
   var browser = e.target.linkedBrowser;   

   // отключить JavaScript для сайта если домен сайта совпадает с массивом 'hosts'
   var specifiedSite = hosts.indexOf( browser.contentDocument.location.host ) !== -1; 
   browser.docShell.allowJavascript = !specifiedSite;

   // если на странице отключен JavaScript меняем иконку
   if ( browser == gBrowser.selectedBrowser ) { 
        self.style.filter = specifiedSite || !cbu.getPrefs("javascript.enabled") ? grayscale : '';        
        }
}, true, gBrowser.tabContainer);
var grayscale = parseInt(Services.appinfo.version) < 36 ? 'url("chrome://mozapps/skin/extensions/extensions.svg#greyscale")' : 'grayscale(1)';

Отсутствует

 

№168620-03-2017 14:54:58

Ultima2m
Участник
 
Группа: Members
Зарегистрирован: 28-11-2013
Сообщений: 311
UA: Firefox 52.0

Re: Обсуждение кнопок CB

bunda1
Извиняюсь за панику, похоже, это косяк Cyberfox.
Версия 52.0.1 работает стабильно.
Но сегодня обновил Cyberfox до 52.0.2 и они там чего-то наулучшали.
Откатился и все заработало.

Отсутствует

 

Board footer

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