открыть изображение в новой вкладке? Кнопка есть, не не берет 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) { };
Отсутствует
А, просто код нельзя? Для дефолтного пункта?Типа: кнопка HOME?
/*Initialization Code*/ try { document.getElementById("context-viewimage").setAttribute("onclick", "gBrowser.selectedTab = gBrowser.addTab(checkForMiddleClick(this, event))"); } catch(e) { };
«The Truth Is Out There»
Отсутствует
unter_officer
Круто, без речи. Жаль в SM открывает пустую вкладку....Может, кто знает. что не так с этим браузером?
Кстати, а нечто подобное, нельзя к закладкам применить?
Отредактировано drage2 (29-03-2018 12:46:23)
Отсутствует
скрытый текстВыделить кодКод:
/*Initialization Code*/ try { document.getElementById("context-viewimage").setAttribute("onclick", "gBrowser.selectedTab = gBrowser.addTab(checkForMiddleClick(this, event))"); } catch(e) { };
Парни, а что должна делать сия кнопа? Пробовал устанавливать - чё-то не разобрался
Отсутствует
открыть изображение в новой вкладке
Спасибо, дошло Если по картинке ПКМ -> Открыть изображение, то без кнопки картинка открывалась прямо в этой вкладке, а теперь - в новой, так на самом деле удобнее
Отсутствует
Специально для этого код писать? эта как копировать ссылки, когда все это можно через ctrl или alt, мне так удобнее, нечасто пользуюсь.
Может и удобно кто часто пользуется... мне не понять.
Отредактировано Gladius333 (30-03-2018 13:53:55)
Отсутствует
В ff60 перестала работать кнопка Видео в плейер. Возможно ли восстановить ее работоспособность?
Без мультипроцесса слава богу заработала)
Отредактировано Garalf (15-04-2018 18:31:37)
Отсутствует
Подскажите, есть кнопка для менеджера сессий? Session Manager не подходит - мне совершенно не нужно вручную сохранять сессии. Нужно чтобы как в разных аддонах, запоминалось энное число последних сессий, которые можно открыть.
Отсутствует
Подскажите, есть кнопка для менеджера сессий? Session Manager не подходит - мне совершенно не нужно вручную сохранять сессии. Нужно чтобы как в разных аддонах, запоминалось энное число последних сессий, которые можно открыть.
Вроде нету такой кнопки.
Отсутствует
Совсем забыл, что в самих лисьеподобных, в меню Журнала, есть функция восстановления последней сессии. Но есть один минус - такой пункт есть в меню, но нет такой кнопки. Можно как то реализовать кнопку копирующую пункт меню?
Отсутствует
Совсем забыл, что в самих лисьеподобных, в меню Журнала, есть функция восстановления последней сессии. Но есть один минус - такой пункт есть в меню, но нет такой кнопки. Можно как то реализовать кнопку копирующую пункт меню?
может:
или
Отсутствует
Нужна кнопка типа Tabclick, т.к. Tabmix приказал долго жить. Особенно убивает дв.клик по панели вкладок...Раньше закрывал этим все вкладки, теперь окно клацает.
На Ru.board ,бесполезно спрашивать.....
Отсутствует
окно клацает
Стиль хоть пытался регистрировать?
Отредактировано Dumby (14-05-2018 21:53:57)
Отсутствует
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", ]);
Отсутствует
Garalf
Значит у тебя со стилем что-то не так.
Кстати, сейчас попробовал следующим образом:
выключил стиль и разместил после строки, где return; строку e.preventDefault();
Разворачивание/нормализация — не происходит, перетаскивание окна — происходит.
Отсутствует
выключил стиль и разместил после строки, где return; строку e.preventDefault();
А вот так нормально. Спасибо.
Dumby
И еще вопрос. Не работают костыли в сборке FF61b4. Использовал последний config.js из твоего поста и custom_buttons-0.0.5.8.9-fixed8.
Причины у меня?
Отсутствует
И еще вопрос. Не работают костыли в сборке FF61b4. Использовал последний config.js из твоего поста и custom_buttons-0.0.5.8.9-fixed8.
Причины у меня?
Нет, костыли, надеюсь, работают и в сборке FF61b4, и в сегодняшней Nightly.
И нет, ни в коем случае, причины не у тебя. Причины совсем в другом.
Этот запрет существует для официальных 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, поэтому, как и раньше,
после операций установки/удаления и включения/выключения
по-прежнему требуется рестарт.
Отсутствует
Dumby
Да, так CB установилось и кнопки работают. Пока живем)
Ну раз пошла такая пьянка, Dumby еще одна просьба. Можно ли восстановить работоспособность кнопки Autocopy+3 в FF60+
// Настройка функций кликов мыши для кнопки ................................
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)
Отсутствует