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

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

№205121-03-2018 11:22:09

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 58.0

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

В FF59 перестала работать кнопка Autocopy+3. Можно ли восстановить ее работоспособность?

Отредактировано Garalf (21-03-2018 11:23:28)

Отсутствует

 

№205228-03-2018 20:28:05

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 57.0

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

открыть изображение в новой вкладке? Кнопка есть, не не берет canvas/

Выделить код

Код:

/*Initialization Code*/    
function open_imgnewtab() {
              var address = gContextMenu.imageURL||gContextMenu.mediaURL;
        var newTab = gBrowser.addTab(address);
        gBrowser.selectedTab = newTab;
}

 
var contextMenu = document.getElementById("contentAreaContextMenu");
 
var menuId = "imgnewtab-open";
var menuItem = document.getElementById(menuId);
if (menuItem) {
     
    contextMenu.removeChild(menuItem);
};
 
menuItem = document.createElement("menuitem");
menuItem.setAttribute("id", menuId);
menuItem.setAttribute("label", "Открыть изображение");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC/UlEQVR4Xp3RfUyUBRzA8e9zzz3HHd4BJ4eLF9G4CxCmuM5jatop1oSgurCYFM60NVvaen/RFWVtyZprsv5isf4gY/MllNabpajtINzZDb2GBCKSvByEetZx3HHPPU/eIucaa6vP9vvz+/v98WM2z9lIeLO8sOjtR5c++95jS1/Z5rSusaeTyG2Wv+C7J93+koV/EHZVLCo7WLf+9Hctm6cnfqlTz3a2qoeaW+UPX605udaWZAV4oG5i0ZInT3i0afZVAjPsINVsKXotvyxj17i1IDEBA3aTxA/dW/FPZrI23636WupPvb//YqVtc2uDt6153nX37i1aZmzdVrCzypVZ+ymT4pExDwWSmZJkB+cvyfSNT5GdkiisLl+9avHFwp2Do/7yG72n9kDErwF4y5XldFlT30hBFpeIGsITPfT+dg69JkaVw8MTKzxsXDeMyZIiCVnOZ670eseVa56TQFjrXIC+IlvafYffYuBnI8UrRvlx+UMoOhNaDay8a4SVhklQk+noS2YoaDTduNx+CPn6BQBt5Zr0whwbxeoHx4ikG9FtXIZIFFFQQImBIoMs80dkis+9eQz0+gLq6PFWIACgybDoHOaFoiFaZCD6oAUpSQOxeBj9a2IyKDJHO3T0+wUCgx1upsfOAiqANtlsTBWVCMqmNJIsZpD08SB+/VYcCk5x4sKdXOrpnmLk+EFgjBkadHMiqpiAqFc403Wtv+nIwMeR6emYosRQAFWN0XVeoCRHUOcG2zsID7gBhRmaoat4Q/r50XAkKp/2Xq2VQoGGSDCoHPvG19584MzeL7/wdl75PS/W5+sMhX79+gAwxO3iX/ip6eGWsLsy1tNY9Nnwfse57k+KL5cuNmQBwus73nn58GGP4nI91QbYmE2102hp+6ikafDbTYGRrzaEG5/PexcQGu9Lzai/P79/T/WGyezs3O2AxL/QPr4sIecRe+LdC0AP8P3TuS8erbEp+8oyuoBC/qu60syshuqFtdvvnVcLmPiftDOxwCz+BPiNM36XpsjoAAAAAElFTkSuQmCC"); 
menuItem.addEventListener("command", open_imgnewtab, false);
contextMenu.insertBefore(menuItem, document.getElementById("context-viewimage"));
 
contextMenu.addEventListener("popupshowing", setMenuDisplay, false);
 function setMenuDisplay(aEvent) {
                 if (gContextMenu.imageURL||gContextMenu.mediaURL)
                 {
                 document.getElementById("imgnewtab-open").hidden = false;
                 }
                 else
                 document.getElementById("imgnewtab-open").hidden = true;
                 
}

А, просто код нельзя? Для дефолтного пункта?Типа: кнопка HOME?

Выделить код

Код:

/*Initialization Code*/
try {  
    document.getElementById("home-button").setAttribute("onclick", "event.stopPropagation(); if (event.button == '0') { ( (Application.prefs.getValue('browser.startup.homepage', 0)).split('|') ).forEach(function(url) { getBrowser().selectedTab = getBrowser().addTab( url ) }) }");
}
catch(e) { };

Отсутствует

 

№205329-03-2018 00:12:16

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

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

drage2 пишет

А, просто код нельзя? Для дефолтного пункта?Типа: кнопка HOME?

Выделить код

Код:

/*Initialization Code*/

try {
  document.getElementById("context-viewimage").setAttribute("onclick", "gBrowser.selectedTab = gBrowser.addTab(checkForMiddleClick(this, event))");
}
catch(e) { };

«The Truth Is Out There»

Отсутствует

 

№205429-03-2018 10:31:14

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 57.0

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

unter_officer
Круто, без речи. Жаль в SM открывает пустую вкладку....Может, кто знает. что не так с этим браузером?
Кстати, а нечто подобное, нельзя к закладкам применить?

Отредактировано drage2 (29-03-2018 12:46:23)

Отсутствует

 

№205529-03-2018 18:16:44

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 323
UA: Firefox 57.0

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

unter_officer пишет

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

Выделить код

Код:

/*Initialization Code*/
try {
   document.getElementById("context-viewimage").setAttribute("onclick", "gBrowser.selectedTab = gBrowser.addTab(checkForMiddleClick(this, event))");
 }
 catch(e) { };

Парни, а что должна делать сия кнопа? Пробовал устанавливать - чё-то не разобрался :blush:

Отсутствует

 

№205629-03-2018 19:03:24

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 57.0

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

Viatcheslav
открыть изображение в новой вкладке

Отсутствует

 

№205729-03-2018 20:24:56

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 323
UA: Firefox 57.0

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

drage2 пишет

открыть изображение в новой вкладке

Спасибо, дошло :) Если по картинке ПКМ -> Открыть изображение, то без кнопки картинка открывалась прямо в этой вкладке, а теперь - в новой, так на самом деле удобнее :cool:

Отсутствует

 

№205830-03-2018 13:53:15

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: unknown 0.0

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

Специально для этого код писать? эта как копировать ссылки, когда все это можно через ctrl или alt, мне так удобнее, нечасто пользуюсь.
Может и удобно кто часто пользуется... мне не понять.

Отредактировано Gladius333 (30-03-2018 13:53:55)

Отсутствует

 

№205913-04-2018 15:29:02

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 60.0

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

В ff60 перестала работать кнопка Видео в плейер. Возможно ли восстановить ее работоспособность?
Без мультипроцесса слава богу заработала)

Отредактировано Garalf (15-04-2018 18:31:37)

Отсутствует

 

№206019-04-2018 01:45:55

ARG
Лисолюб
 
Группа: Members
Зарегистрирован: 22-06-2005
Сообщений: 389
UA: Firefox 52.0

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

Подскажите, есть кнопка для менеджера сессий? Session Manager не подходит - мне совершенно не нужно вручную сохранять сессии. Нужно чтобы как в разных аддонах, запоминалось энное число последних сессий, которые можно открыть.

Отсутствует

 

№206119-04-2018 08:32:25

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

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

ARG пишет

Подскажите, есть кнопка для менеджера сессий? Session Manager не подходит - мне совершенно не нужно вручную сохранять сессии. Нужно чтобы как в разных аддонах, запоминалось энное число последних сессий, которые можно открыть.

Вроде нету такой кнопки.

Отсутствует

 

№206219-04-2018 16:39:04

ARG
Лисолюб
 
Группа: Members
Зарегистрирован: 22-06-2005
Сообщений: 389
UA: Firefox 52.0

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

Совсем забыл, что в самих лисьеподобных, в меню Журнала, есть функция восстановления последней сессии. Но есть один минус - такой пункт есть в меню, но нет такой кнопки. Можно как то реализовать кнопку копирующую пункт меню?

Отсутствует

 

№206319-04-2018 17:49:18

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

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

ARG пишет

Совсем забыл, что в самих лисьеподобных, в меню Журнала, есть функция восстановления последней сессии. Но есть один минус - такой пункт есть в меню, но нет такой кнопки. Можно как то реализовать кнопку копирующую пункт меню?

:/ может:

Выделить код

Код:

restoreLastSession();

или

Выделить код

Код:

goDoCommand("Browser:RestoreLastSession");

Отсутствует

 

№206420-04-2018 05:46:29

ARG
Лисолюб
 
Группа: Members
Зарегистрирован: 22-06-2005
Сообщений: 389
UA: Firefox 52.0

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

bunda1 пишет

:/ может:

Работает, спасибо! А второй нет.

Отсутствует

 

№206513-05-2018 17:42:27

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 60.0

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

Нужна кнопка типа Tabclick, т.к. Tabmix приказал долго жить. Особенно убивает дв.клик по панели вкладок...Раньше закрывал этим все вкладки, теперь окно клацает.
На Ru.board ,бесполезно спрашивать.....

Отсутствует

 

№206614-05-2018 21:46:49

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

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

drage2 пишет

окно клацает

Стиль хоть пытался регистрировать?

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

Выделить код

Код:

#TabsToolbar {
    -moz-window-dragging: no-drag !important;
}

Отредактировано Dumby (14-05-2018 21:53:57)

Отсутствует

 

№206715-05-2018 13:12:44

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 60.0

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

Dumby
Респект! Еще бы кнопочку - дв.кликом по панели закрыть все вкладки ....

Отсутствует

 

№206815-05-2018 19:17:54

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

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

drage2
Не, такие вещи надо делать самому и под себя.
Я же не в курсе твоих предпочтений, и не знаю как у тебя обустроен тулбар.

Ну вот, например, чисто от балды

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

Выделить код

Код:

(selectors => addEventListener("dblclick", e => {
    if (
        e.button || e.ctrlKey || e.shiftKey || e.altKey
        || !e.originalTarget.matches(selectors)
    )
        return;
    var hbuTabs = [], param = {animate: false};
    gBrowser.selectedTab = gBrowser.tabs[0];
    for(var tab of gBrowser.visibleTabs.reverse())
        //if (tab.pinned) break; else
        gBrowser._hasBeforeUnload(tab)
            ? hbuTabs.push(tab)
            : gBrowser.removeTab(tab, param);
    for(tab of hbuTabs)
        gBrowser.removeTab(tab, param);
}, false, document.getElementById("TabsToolbar") || 1))("" + [

    "#tabbrowser-tabs [class*=scrollbox]",
    "#TabsToolbar > toolbarspring",
    "#TabsToolbar",
]);

Отсутствует

 

№206915-05-2018 20:42:33

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 60.0

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

Dumby
Вкладки убирает, но и окно сворачивает

Отсутствует

 

№207015-05-2018 22:36:35

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

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

Garalf
Значит у тебя со стилем что-то не так.

Кстати, сейчас попробовал следующим образом:
выключил стиль и разместил после строки, где return; строку e.preventDefault();
Разворачивание/нормализация — не происходит, перетаскивание окна — происходит.

Отсутствует

 

№207115-05-2018 23:40:40

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 60.0

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

Dumby
Шикарно!   Еще бы дв.клик по вкладе....Что бы она одна осталась активной. И TMP  нервно курит....

Отредактировано drage2 (15-05-2018 23:59:12)

Отсутствует

 

№207216-05-2018 08:44:29

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 60.0

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

Dumby пишет

выключил стиль и разместил после строки, где return; строку e.preventDefault();

А вот так нормально. Спасибо.
Dumby
И еще вопрос. Не работают костыли в сборке FF61b4. Использовал последний config.js из твоего поста и custom_buttons-0.0.5.8.9-fixed8.
Причины у меня?

Отсутствует

 

№207316-05-2018 13:16:19

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 60.0

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

Garalf
Забудь уже за config.js, разрабы тоже не дремлют, все проще можно....

Отсутствует

 

№207416-05-2018 17:10:48

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

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

Garalf пишет

И еще вопрос. Не работают костыли в сборке FF61b4. Использовал последний config.js из твоего поста и custom_buttons-0.0.5.8.9-fixed8.
Причины у меня?

Нет, костыли, надеюсь, работают и в сборке FF61b4, и в сегодняшней Nightly.
И нет, ни в коем случае, причины не у тебя. Причины совсем в другом.

скрытый текст
Костыли всего-лишь навсего снимают некий искусственный принципиальный
запрет на установку и невыключение неподписанных и Legacy расширений.

Этот запрет существует для официальных Release и Beta сборок,
и не существует для официальных Nightly, Developer и «Unbraindead» билдов.

Шестьдесят первая версия ознаменовалась эпическим эпизодом
документального сериала «Firefox Quantum. История предательства.»
А именно: лисице вырезали сердце — поддержку оверлейных расширений.

chrome.manifest для оверлейных расширений игнорируется.
Директива overlay не исполняется.
Это заложено в тёмных глубинах С++ кода, и никакой
конфиг-неконфиг.js ничего с этим поделать не сможет.

custom_buttons-0.0.5.8.9-fixed8 является оверлейным расширением,
таким образом, на Firefox выше версии 60 работать не может в принципе.

Официальной версии Custom Buttons для Firefox 61 пока(?) нет.

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

Инструкция по установке:
1. Сохранить картинку из поста.
2. Открыть сохранённую картинку в архиваторе.
    (например, перетащить её из Проводника на ярлык 7-Zip File Manager (7zFM.exe))
3. Извлечь custom_buttons-0.0.5.9.0.0-fx.xpi
4. Со страницы about:addons установить дополнение из файла.

Важно: это фейковый bootstrap, поэтому, как и раньше,
после операций установки/удаления и включения/выключения
по-прежнему требуется рестарт.

Отсутствует

 

№207516-05-2018 18:05:33

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 322
UA: Firefox 60.0

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

Dumby
Да, так CB установилось и кнопки работают. Пока живем)
Ну раз пошла такая пьянка, Dumby еще одна просьба. Можно ли восстановить работоспособность кнопки Autocopy+3 в FF60+

скрытый текст
// Autocopy+3 от 05-05-2015.

// Настройка функций кликов мыши для кнопки ................................
this.onclick = this.oncontextmenu = e => {
   if ( e.button == 0 ) cbu.setPrefs("Autocopy", !cbu.getPrefs("Autocopy") );
       
   if ( e.button == 2 ) {
        e.preventDefault(); 
        menuPopup.showPopup( this, -1, -1, "popup", "bottomleft", "topleft");
        }     
};



// Проверить наличие строк в 'about:config' и создать если не существует ................................
if ( !cbu.isPref("Autocopy.saveWithDoubleClick") ) {
     ["Autocopy", "Autocopy.reset", "Autocopy.selectingTextBlink", "Autocopy.selectWithDoubleClick",
      "Autocopy.copyWithDoubleClick", "Autocopy.saveWithDoubleClick"].forEach(function(pref) { cbu.setPrefs( pref, false ) });
};



// Создать меню ................................
var array = [
    { label: 'Выключать автокопирование при выходе из браузера', value: 'Autocopy.reset' },
    { label: 'Выделенный текст мигает при автокопировании', value: 'Autocopy.selectingTextBlink' },
    { separator: ''},
    { label: 'Двойной правый клик мыши копирует выделенный текст', value: 'Autocopy.copyWithDoubleClick' },
    { label: 'Двойной левый клик мыши выделяет все в текстовых полях', value: 'Autocopy.selectWithDoubleClick' },
    { label: 'Двойной правый клик мыши сохраняет изображение без запроса', value: 'Autocopy.saveWithDoubleClick' },
    { label: 'Средним кликом вставлятъ текст с заменой выделенного текста', value: 'middlemouse.paste' }
];

var menuPopup = self.appendChild( document.createElement("menupopup") );
array.forEach(function( m ) {
    if ( "separator" in m ) { menuPopup.appendChild( document.createElement("menuseparator") ); return };
    var mItem = document.createElement("menuitem");
    mItem.setAttribute("label", m.label);
    mItem.setAttribute('type', 'checkbox');
    mItem.setAttribute('checked', custombuttons.getPrefs( m.value ) );
    mItem.setAttribute('onclick', 'custombuttons.setPrefs("' + m.value + '", !custombuttons.getPrefs("' + m.value + '"))'); 
    menuPopup.appendChild( mItem );
});
menuPopup.setAttribute("onclick", "event.stopPropagation()");

// добавить стандартное контекстное меню ....
menuPopup.appendChild( document.createElement("menuseparator") );
menuPopup.appendChild( document.createElement("menu") ).setAttribute("label", "Меню кнопки");
var clone = menuPopup.lastChild.appendChild( document.getElementById("custombuttons-contextpopup").cloneNode(true) );
clone.setAttribute("onpopupshowing", "document.popupNode = document.getElementById('" + _id + "')");



// Установить нужную иконку кнопки при старте браузера или при изменениях настроек в 'about:config' ................................
const s = "Autocopy";
function toggleImage() { 
    self.image = cbu.getPrefs(s)
    ? "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMBAAQIAAcEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAcACAMEAQEAAAAAAAAAAAAAAAACAwADAAAAABUnAB9cqgC3a7wB4Gq5Ad1qugHearoB3mq6Ad5qugHearoB3mi4AN1qugHgYrMAxR43AC8AAAAAAAEAAAECAAQAAAQAV6AAprP9Vv/W/qn80/+f/9T/ov/U/6L/1P+i/9T/ov/U/6L/1/+n/9X+pfy3/WL/Y7QAvwEAAQAAAAAAFSgAH1ehAKlyzwD1htgf/YzcJ/2K2yP9i9sk/YvbJf2L2yX9i9sm/YnaIv2b4kP92/21/Nf+qv9quwHdBQkACAAAAQBeqwCzr/tR/8X0j/u+8X//vvJ//77ygP++8oD/vvKA/77yf/+98n7/wvSH/4zcKv+e4kv93v+0/2i5AN0DBwAIBQkACGu8AdzV/af/4v/B/d//u//h/7//4f+//+H/v//h/7//4f+//9/+u//n/8n/w/GK/4zaK/3g/7r/aroC3gMHAAgEBwAIarkC3dX/pf/g/sD93v67/9/+vv/g/r//4P6//+D+v//f/r7/3f66/+T/xv/B8Yb/j9st/eT/w/9qugPeAwcACAQHAAhqugLe2v+w/+j/z/3l/8r/5//N/+f/zv/n/87/5//O/+f/zf/l/sj/7P/W/8Xyj/+Q2y/96f/N/2q6A94DBwAIBAcACGq6At7f/7n/7v/c/ev/1v/t/9n/7f/a/+3/2v/t/9r/7f/Z/+r+1f/y/+P/yPKW/5DbMf3s/9X/aroE3gMHAAgEBwAIaroC3uP/wf/z/+j98P/h//L/5P/z/+X/8//l//P/5f/y/+T/8P7g//j/7v/L8p3/kdsy/fD/3P9rugTeAwcACAQHAAhqugLe5v/J//j/8v31/+r/9v/t//f/7v/3/+//9//u//b/7f/0/un//f/4/87yo/+R2zL98f/f/2q5Bd0DBwAIBAcACGq6At7p/8///P/6/fj/8f/6//T/+v/1//r/9f/6//X/+v/0//f+8P//////0fGo/5PbNf30/+f/a7wE3AQJAAgEBwAIabkC3er/0f/+//79+v/0//v/9//8//j//P/4//z/+P/7//f/+f70///////T8qz/i9go+8P9ef9dqwCzAAACAAUJAAhquwHd7f7a//////z+//39/////f////3////9/////f////39/vz9/////dzzvv5v0AD1VqECqRUnAB8AAAAAAQACAGK0AL/J/Yf/8v7k/O3/1//u/9n/7v/Z/+7/2f/u/9n/7v/Z/+3/1//x/eP8vfxu/1WgAKYAAAUAAQIABAABAAAAAAAAHjcALmGzAMVquwLgarkC3Wq6At5qugLearoC3mq6At5qugLearkC3Wu8AeBbqgC3FScAHwAAAAACAwADAAAAAAAAAAAAAAAAAwQCAQQIAAgEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAgABwMDAgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
    : "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgEDAAQACAcEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAHCAMBBAEAAAAAAAAAAAAAAAACAAMDAAAAABUAJx9cAKq3awG84GoBud1qAbreagG63moBut5qAbreagG63mgAuN1qAbrgYgCzxR4ANy8AAAAAAAABAAEAAgQABAAAVwCgprNW/f/Wqf7805///9Si///Uov//1KL//9Si///Uov//16f//9Wl/vy3Yv3/YwC0vwEBAAAAAAAAFQAoH1cAoalyAM/1hh/Y/Ywn3P2KI9v9iyTb/Ysl2/2LJdv9iybb/Yki2v2bQ+L927X9/Neq/v9qAbvdBQAJCAABAABeAKuzr1H7/8WP9Pu+f/H/vn/y/76A8v++gPL/voDy/75/8v+9fvL/wof0/4wq3P+eS+L93rT//2gAud0DAAcIBQAJCGsBvNzVp/3/4sH//d+7///hv///4b///+G////hv///4b///9+7/v/nyf//w4rx/4wr2v3guv//agK63gMABwgEAAcIagK53dWl///gwP793rv+/9++/v/gv/7/4L/+/+C//v/fvv7/3br+/+TG///BhvH/jy3b/eTD//9qA7reAwAHCAQABwhqArre2rD//+jP//3lyv//583//+fO///nzv//587//+fN///lyP7/7Nb//8WP8v+QL9v96c3//2oDut4DAAcIBAAHCGoCut7fuf//7tz//evW///t2f//7dr//+3a///t2v//7dn//+rV/v/y4///yJby/5Ax2/3s1f//agS63gMABwgEAAcIagK63uPB///z6P/98OH///Lk///z5f//8+X///Pl///y5P//8OD+//ju///LnfL/kTLb/fDc//9rBLreAwAHCAQABwhqArre5sn///jy//316v//9u3///fu///37///9+7///bt///06f7//fj//86j8v+RMtv98d///2oFud0DAAcIBAAHCGoCut7pz////Pr//fjx///69P//+vX///r1///69f//+vT///fw/v//////0ajx/5M12/305///awS83AQACQgEAAcIaQK53erR///+/v/9+vT///v3///8+P///Pj///z4///79///+fT+///////TrPL/iyjY+8N5/f9dAKuzAAIAAAUACQhqAbvd7dr+//////z+/f/9/////f////3////9/////f////39/P79/////dy+8/5vAND1VgKhqRUAJx8AAAAAAQIAAGIAtL/Jh/3/8uT+/O3X///u2f//7tn//+7Z///u2f//7tn//+3X///x4/38vW78/1UAoKYABQAAAQACBAAAAQAAAAAAHgA3LmEAs8VqArvgagK53WoCut5qArreagK63moCut5qArreagK53WsBvOBbAKq3FQAnHwAAAAACAAMDAAAAAAAAAAAAAAAAAwIEAQQACAgEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAIBwMCAwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
}; 
toggleImage();
gPrefService.addObserver( s, toggleImage, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) }); 



// Выключать кнопку при закрытии браузера если это разрешено в 'about:config' ................................
var turnOffButton = {
    observe: function(subject, topic, data) {
       if ( cbu.getPrefs("Autocopy.reset") && data == "shutdown" ) cbu.setPrefs("Autocopy", false ); 
    }
};
Services.obs.addObserver( turnOffButton, "quit-application", false);
addDestructor(function() { Services.obs.addObserver( turnOffButton, "quit-application", false ) }); 



// Функции автоматически копирует выделенный текст на странице, если это разрешено в 'about:config' ................................
({
        PREF_ROOT: "autocopy",
        init: function() {
                cbu.isPref(this.PREF_ROOT, true);
                gPrefService.addObserver(this.PREF_ROOT, this, false);
                addDestructor(()=> gPrefService.removeObserver(this.PREF_ROOT, this));
                if (!gPrefService.getBoolPref(this.PREF_ROOT)) return;
                this.setAutocopy(true);
        },
        observe: function(subj, topic, data) {
                if (data == this.PREF_ROOT)
                this.setAutocopy(gPrefService.getBoolPref(data));
        },
        setAutocopy: function(set) {
                var method = set ? addEventListener : removeEventListener;
                for(var type of ["mousedown", "mouseup"]) method(type, this, false, gBrowser);
        },
        handleEvent: function(e) {
                if (e.button || e.target instanceof Ci.nsIDOMNSEditableElement) return;
                var win = e.target.ownerDocument.defaultView;
                if (win.top != content) return;
                var sel = win.getSelection().toString();
                if (e.type == "mousedown") {this.sel = sel; return;}
                if (!sel || sel == this.sel) return;
                goDoCommand("cmd_copy");
        }
}).init();




// Cредней кнопкой мыши вставить текст из буфера обмена в текстовые поля с заменой выделенного текста ................................
function middleMousePaste(e) {
    if ( e.button == 1 && cbu.getPrefs('middlemouse.paste') ) {

         if ( /input|password|textarea|textbox|searchbar|findbar|cbeditor/.test( e.target.localName.toLowerCase() )
              && document.commandDispatcher.getControllerForCommand("cmd_paste") ) {
     
              e.preventDefault();
              e.stopPropagation();
               
              // вставить текст ....
              var cmd = "cmd_insertText";
              var commandDispatcher = ( this.document || document ).commandDispatcher;
              var controller = commandDispatcher.getControllerForCommand(cmd);
 
              if ( controller && controller.isCommandEnabled(cmd) ) {
                   controller = controller.QueryInterface(Components.interfaces.nsICommandController);
                   var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]
                                          .createInstance(Components.interfaces.nsICommandParams);
                   params.setStringValue("state_data", gClipboard.read() );   
                   controller.doCommandWithParams(cmd, params);
                   }
              }             
         }
};
addEventListener("click", middleMousePaste, true, document.documentElement );




   
   
// Дополнительные возможности для двойного клика мыши, если это разрешено в 'about:config' ................................
function handleDblClick(e) {

  var node = e.target;
  var editor = node.editor;
 
  // выделить все в текстовых полях ....
  if ( e.button == 0 && custombuttons.getPrefs("Autocopy.selectWithDoubleClick") ) {   
       e.preventDefault();

       if ( /input|textbox|textarea/.test( node.localName ) ) !editor ? node.select() : editor.selectAll();
       }
           
  // сохранить изображение без запроса ....   
  if ( e.button == 2 && cbu.getPrefs("Autocopy.saveWithDoubleClick") && node.localName == 'img' ) {
       saveImageURL( gContextMenu.imageURL, 0, 0, 0, 1, null, content.document );
       setTimeout(function() { document.getElementById("contentAreaContextMenu").hidePopup() }, 20);
       }     
       
  // скопировать выделенный текст ....
  if ( e.button == 2 && cbu.getPrefs("Autocopy.copyWithDoubleClick") && !/findbar|tabbrowser/.test( node.localName ) ) {
       e.preventDefault();
       !editor ? goDoCommand("cmd_copy") : editor.copy();       
       try {       
           var box = ( node.textbox || node ).inputField.parentNode;
           var popup = box.ownerDocument.getAnonymousElementByAttribute( box, "anonid", "input-box-contextmenu");
           setTimeout(function() popup.hidePopup(), 50);
           }
       catch(e) { document.getElementById("contentAreaContextMenu").hidePopup() };
       }       
};
addEventListener("dblclick", handleDblClick, false, gBrowser );



// Наблюдатель следит за открытием окон адреса которых указанны в коде и добавляет им обработчики ................................
var observer = { 
       observe: function(subject, topic, data) {
          subject.addEventListener("load", this, false);
          },
     
       handleEvent: function(e) {
          var doc = e.target;
          var win = doc.defaultView;
          var href = doc.location.href;
          win.removeEventListener("load", this, false);
         
          // закрывать 'Информацию о странице' или 'Библиотеку' двойным кликом на ней ....           
          if ( /pageInfo.xul|places.xul/.test( href ) ) {
         
               win.addEventListener("dblclick", function close() { this.close() }, true);
                         
               win.addEventListener("unload", function(e) {
                   win.removeEventListener(e.type, arguments.callee, false);
                             
                   win.removeEventListener("dblclick", close, true);
                   }, false);                 
               };
   
          // добавлять и удалять обработчики клика для редактора Custom Buttons ....
          if ( href.substring(0, 41) == "chrome://custombuttons/content/editor.xul" ) {

               win.addEventListener("click", middleMousePaste, true );
               win.addEventListener("dblclick", handleDblClick, false );
         
               win.addEventListener("unload", function(e) {
                   win.removeEventListener(e.type, arguments.callee, false );
         
                   win.removeEventListener("click", middleMousePaste, true );
                   win.removeEventListener("dblclick", handleDblClick, false );
                   }, false);
               };
      }
};
Services.obs.addObserver(observer, "domwindowopened", false);
addDestructor(function() { Services.obs.removeObserver(observer, "domwindowopened", false) });


// Подсказка для кнопки ................................
this.tooltipText = "Autocopy \nЛ: Переключить автоматическое ко

Отредактировано Garalf (16-05-2018 18:06:30)

Отсутствует

 

Board footer

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