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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№192604-01-2018 19:11:57

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

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

momo2000 пишет

не монятно

Ну, там же, по ссылке, написано: «js-ctypes to send keys winapi».
То есть код делает так, как если бы было дважды нажато Ctrl
А QTranslate это отслеживает

Справка QTranslate пишет

Системные горячие клавиши (по умолчанию):
Double Ctrl => Показать главное окно программы (с переводом, если есть выделенный текст)

Сподобился проверить в такой конфигурции

скрытый текст
VMware® Workstation 11.0.0 build-2305329
Windows 10 Pro 10.0.10240 x64
Firefox Nightly 59.0a1 (2018-01-03) (32-бит), e10s включён
Custom Buttons 0.0.5.8.9.6pre
QTranslate 6.4.0

Работает. Окно QTranslate появляется, и выделенный текст в нём есть.

Отсутствует

 

№192704-01-2018 19:43:03

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

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

momo2000
а чего его посылать, QTranslate сам все умеет забирать отовсюду: два раза CTRL жмакни и будет тебе перевод.


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

Отсутствует

 

№192805-01-2018 08:45:10

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 237
UA: Firefox 55.0

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

mokujin
а чего его посылать, QTranslate сам все умеет забирать отовсюду: два раза CTRL жмакни и будет тебе перевод.
Он у меня закрыт, когда нужен перевод я его открываю и копипастю(
Есть кнопка на тулбаре

var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile);
file.initWithPath('D:\\DRIVE\\PORTABLE\\QTranslate\\QTranslate.exe');
file.launch();


Вот я идумаю, как так сделать, чтобы по нажатию кнопки из буфера текст сразу был всавлен, походу морока, тогда черт с ней.

Отсутствует

 

№192905-01-2018 16:45:49

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

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

momo2000 пишет

походу морока, тогда черт с ней.

да, вроде, не морока ниразу :)  Dumby всё дал, осталось собрать воедино и запустить:
Код

Запустить QTranslate и жмакнуть(программно) дважды CTRL(код Dumby)

Выделить код

Код:

/* CODE */
// Запустить QTranslate и жмакнуть(программно) дважды CTRL(код Dumby)
// - стандартн. комбин. для захвата текста из окна в QTranslate.
// интервал можно увеличить или уменьшить, зависит от железа
 setTimeout(function() dblCtrlSend(), 2000);

 quickTranslate();

// ----------------------------------- =  QuickTranslate  = ----------------------------------------------
   function quickTranslate() {
//  скопировать выделенный текст в буфер. 
//           gClipboard.write(document.commandDispatcher.focusedWindow.getSelection().toString());
     var profile = Services.dirsvc.get('ProfD', Ci.nsIFile);
     profile.initWithPath(profile.path + "\\Soft\\QTranslate\\QTranslate.exe");
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      var arg = [];
   process.init(profile);
   process.run(false, [arg], 1);
//   setTimeout(function() window.content.focus(), 500);
   };


function dblCtrlSend() {

// See https://gist.github.com/Noitidart/0de3be2442a0295eb386
// vk codes: https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx

// Double Ctrl [Ctrl-Down, Ctrl-Up, Ctrl-Down, Ctrl-Up]
var data = [[0x11, false], [0x11, true], [0x11, false], [0x11, true]];

// Ctrl+Q [Ctrl-Down, Q-Down, Q-Up, Ctrl-Up]
//var data = [[0x11, false], [0x51, false], [0x51, true], [0x11, true]];

var {ctypes} = Cu.import("resource://gre/modules/ctypes.jsm", {});
var KEYBDINPUT = ctypes.StructType("tagKEYBDINPUT", [
    {wVk: ctypes.unsigned_short},
    {wScan: ctypes.unsigned_short},
    {dwFlags: ctypes.unsigned_long},
    {time: ctypes.unsigned_long},
    {dwExtraInfo: ctypes.voidptr_t.size == 8 ? ctypes.uint64_t : ctypes.unsigned_long},
    {padding0: ctypes.uint8_t.array(8)}
]);
var INPUT = ctypes.StructType("tagINPUT", [{type: ctypes.unsigned_long}, {ki: KEYBDINPUT}]);
var pInputs = INPUT.array()(data.map(([vkCode, keyup]) => 
    INPUT(1, KEYBDINPUT(vkCode, 0, keyup ? 2 : 0, 0, 0, ctypes.uint8_t.array(8)()))
));
var user32 = ctypes.open("user32"); try {
    var SendInput = user32.declare("SendInput", ctypes.winapi_abi, ctypes.unsigned_int, ctypes.unsigned_int, INPUT.ptr, ctypes.int);
    SendInput(pInputs.length, pInputs, INPUT.size);
 } finally {
    user32.close();
 }
};

Добавлено 05-01-2018 16:55:48
зы. в твоем случае измени ф-цию  function quickTranslate() {.... } на свой путь... хотя каки боком там тогда portable будет ?! Отталкиваться ж нужно от относительных путей , но как хочешь.

Выделить код

Код:

// змени моё тело на своё
 function quickTranslate() {
 
  var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile);
  file.initWithPath('D:\\DRIVE\\PORTABLE\\QTranslate\\QTranslate.exe');
  file.launch();

 }

Отредактировано mokujin (05-01-2018 16:55:48)


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

Отсутствует

 

№193008-01-2018 12:29:51

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

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

mokujin
Не работает. Окно QTranslate появляется, а выделенный текст в него не попадает. Пробовал на FF 57 и FF 52.

Отредактировано Garalf (08-01-2018 12:30:41)

Отсутствует

 

№193108-01-2018 16:40:03

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

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

Garalf пишет

Не работает. Окно QTranslate появляется, а выделенный текст в него не попадает. Пробовал на FF 57 и FF 52.

все работает. У мя и в PM и в FF 57.3 (расш-е CB отседава взято да прибудет с Infocatcher сила! ) эта кнопка делает то что и задумано - запускает QTranslate и выделенный текст вставляеццо, сразу переводиццо. См. ошибки в консоли у себя.
Может тебе нужно увеличить\уменьшить ожидание, поставь 3 секунды  setTimeout(function() dblCtrlSend(), 3000); или наоборот 1 (1000)

Кнопка никак не предназначена для постоянного использования(жмаканья при выделении взамен нажатия ctrl )! Т.е. весь эффект только на один раз, для сафсем ленивых: программа не запущена - запускаем и жмакаем(программно через 2 сек.) дважды CTRL. Дальше жмакать CTRL можно и нужно ручками. Никаких проверок и условий тут нет. Они и не нужны, QT сам прекрасно отовсюду забирает текст.


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

Отсутствует

 

№193208-01-2018 17:17:09

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

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

а куда подевалось в 57-й  getBrowserSelection(); :angry:  или только у меня глючит?


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

Отсутствует

 

№193308-01-2018 19:07:17

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

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

mokujin пишет

или только у меня

Нет, не только у тебя.

Отсутствует

 

№193408-01-2018 19:14:25

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

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

mokujin
Ситуацию разрешил кардинально - заменил QTranslate)).
Спасибо! Все работает...

Отсутствует

 

№193508-01-2018 19:48:28

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

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

Dumby пишет

Нет, не только у тебя.

Какой-то абсурд, кароче.
Благодарю.
прост, если добавить проверку на выделение, перед запуском(дабы окно не вылазило ежли ничего не выделено ) и в PM все норм.

Выделить код

Код:

if(getBrowserSelection()) {
       setTimeout(function() dblCtrlSend(), 2000);
       return;
       };
       
 quickTranslate();
........

а в 57-й знач надо добавить еще и эту ф-цию (замену я пока не нашел\не понял как)

Выделить код

Код:

if(getBrowserSelection()) {
       setTimeout(function() dblCtrlSend(), 2000);
       return;
       };
       
 quickTranslate();

// выпиленная в 57-й ф-ция, вернуть её взад и заюзать в кнопке.
function getBrowserSelection(aCharLen) {
    let focusedElement = document.activeElement;
  if (focusedElement && focusedElement.localName == "browser" &&
      focusedElement.isRemoteBrowser) {
    throw "getBrowserSelection doesn't support child process windows";
    }

    return BrowserUtils.getSelectionDetails(window, aCharLen).text;
 }
...........

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

Отсутствует

 

№193609-01-2018 20:06:17

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

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

Dumby Вы когда-то делали кнопку консоль браузера в боковой панели и в новой вкладке для разных версий. Для 57 не посмотрите? Или хотя бы попроще - прикрепить окно снизу или сбоку как у вебконсоли?

Отсутствует

 

№193713-01-2018 00:30:32

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

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

Andrey_Krropotkin пишет

Dumby Вы когда-то делали кнопку консоль браузера в боковой панели и в новой вкладке для разных версий. Для 57 не посмотрите?

OK, попробую

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

Выделить код

Код:

({
    title: "Консоль браузера",
    icon: "chrome://devtools/skin/images/tool-webconsole.svg",
    url: "chrome://devtools/content/webconsole/webconsole.xul",
    init() {
        var trg = document.getElementById("browser");
        trg && addEventListener("DOMContentLoaded", this, false, trg);
        var attrs = {
            sidebartitle: this.title, sidebarurl: this.url,
            type: "checkbox", group: "sidebar", checked:
                SidebarUI.isOpen && SidebarUI.browser.getAttribute("src") == this.url
        };
        var broadcaster = this.element("broadcaster", Object.assign({
            id: "viewBrowserConsoleSidebar"
        }, attrs), document.getElementById("mainBroadcasterSet"));

        Object.assign(attrs, {
            autoCheck: "false", label: this.title, observes: broadcaster.id,
            oncommand: `SidebarUI.toggle("${broadcaster.id}");`
        });
        var btn = this.element("toolbarbutton", Object.assign({
            id: "sidebar-switcher-browserconsole",
            class: "subviewbutton subviewbutton-iconic"
        }, attrs));
        this.element("observes", {element: broadcaster.id, attribute: "checked"}, btn);
        document.querySelector("#sidebarMenu-popup > toolbarseparator").before(btn);

        var menuitem = this.element("menuitem", Object.assign({
            id: "menu_browserConsoleSidebar"
        }, attrs), document.getElementById("viewSidebarMenu"));

        var css = `\
            #${btn.id} > .toolbarbutton-icon,
            #sidebar-box[sidebarcommand="${broadcaster.id}"] > #sidebar-header > #sidebar-switcher-target > #sidebar-icon {
                list-style-image: url(${this.icon});
                -moz-context-properties: fill;
                fill: currentColor;
                opacity: 0.8;
            }
            #TabsToolbar[brighttext] .tabbrowser-tab:not([visuallyselected=true]) .tab-icon-image[src="${this.icon}"] {
                filter: url("chrome://devtools/skin/images/filters.svg#icon-normal-dark");
            }`;
        var dwu = QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils);
        var str = "data:text/css," + encodeURIComponent(css), type = dwu.AGENT_SHEET;
        dwu.loadSheetUsingURIString(str, type);

        addDestructor(() => {
            for(var node of [broadcaster, btn, menuitem]) node.remove();
            dwu.removeSheetUsingURIString(str, type);
        });
        self.onclick = e => {
            if (e.button == 2) return;
            if (!e.button) return SidebarUI.toggle(broadcaster.id);
            var st = gBrowser.selectedTab, tab;
            if (!e.ctrlKey) tab = gBrowser.visibleTabs.find(
                tab => tab.linkedBrowser.currentURI.spec == this.url
            );
            if (tab == st) return;
            if (!tab) tab = gBrowser.addTab(this.url);
            gBrowser.moveTabTo(tab, st._tPos + 1);
            gBrowser.selectedTab = tab;
        }
        if (gBrowser.currentURI.spec == this.url) {
            var doc = gBrowser.selectedBrowser.contentDocument;
            if (!doc.querySelector("link")) this.handleEvent({target: doc});
        }
    },
    handleEvent({target: doc}) {
        if (!doc || Cu.isCrossProcessWrapper(doc)) return;
        var win = doc.defaultView, url = doc.documentURI;
        var inTab = !String(win).includes("ChromeWindow");
        if (url == this.url) {
            if (inTab) {
                var link = doc.createElementNS(xhtmlns, "link");
                link.setAttribute("rel", "shortcut icon");
                link.setAttribute("href", this.icon);
                doc.documentElement.firstChild.before(link);
            }
            this.loader.Services.ww.wins.push(win);
            new this.loader.HUD_SERVICE().toggleBrowserConsole().then(bc => {
                if (!inTab) return;

                var dummy = {close() {}};
                var parent = this.inIDOMUtils.getParentForNode(doc, true);
                if (parent && parent.id == "web-panels-browser") {
                    SidebarUI._title.value = this.title;
                    SidebarUI._icon.src = this.icon;
                    dummy.close = () => SidebarUI._icon.removeAttribute("src");
                }
                win.onbeforeunload = () => {bc.chromeWindow = dummy;}
            }, Cu.reportError);
        } else if (
            inTab && url == "chrome://devtools/content/shared/widgets/VariablesView.xul"
        ) {
            var iframe = win.frameElement;
            if (!iframe || iframe.ownerDocument.documentURI != this.url) return;

            var listener = Services.els.getListenerInfoFor(iframe)
                .find(obj => obj.type == "load").listenerObject;
            iframe.removeEventListener("load", listener, true);
            win.addEventListener("load", () => listener({target: doc}), {once: true});
        }
    },
    get loader() {
        delete this.loader;
        var id = _id + "-browser-console";
        var url = "resource://devtools/shared/Loader.jsm?" + id;
        var loader = {exports: {}}, nsvo = Cu.import(url, loader);
        addDestructor(reason => reason[5] == "e" && Cu.unload(url));

        if (id in nsvo) return this.loader = nsvo[id];

        Services.scriptloader.loadSubScript("resource://devtools/client/webconsole/hudservice.js", loader);
        var e = new CustomEvent("DOMContentLoaded", {bubbles: false}), ww = loader.Services.ww;
        loader.Services.ww = Cu.getGlobalForObject(nsvo).Object.create(ww, {
            wins: {value: []},
            openWindow: {value: function() {
                var win = this.wins.shift();
                setTimeout(() => win.dispatchEvent(e), 0);
                return win;
            }}
        });
        Services.obs.removeObserver(loader.gDevToolsBrowser, "browser-delayed-startup-finished");
        var func = nsvo.require("devtools/client/framework/browser-menus").removeMenus;
        for(var win of CustomizableUI.windows) func(win.document);
        return this.loader = nsvo[id] = loader;
    },
    element(name, attrs, parent) {
        var node = document.createElement(name);
        for(var attr in attrs) node.setAttribute(attr, attrs[attr]);
        if (parent) parent.appendChild(node);
        return node;
    },
    get inIDOMUtils() {
        delete this.inIDOMUtils;
        return this.inIDOMUtils = "inIDOMUtils" in Ci
            ? Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils)
            : InspectorUtils;
    }
}).init();

Отредактировано Dumby (20-01-2018 04:08:09)

Отсутствует

 

№193816-01-2018 10:39:55

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 57.0

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

Dumby спасибо, все отлично работает на 57 версии

Отсутствует

 

№193916-01-2018 18:06:48

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

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

Может подскажет кто, с кнопкой для PaleMoon
Сделал чтоб быстро копировать адреса RSS из значка в урл.строке(в PM он есть). Одно что хотел сделал, а вот другое немогу...

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

Выделить код

Код:

// ---------------- Копировать адресс RSS ленты в адр. строке по ПКМ ----------------------------------
 (function copyRSSadr() {
     addEventListener("mousedown", e => {
           var rssadr = e.target.getAttribute('feed');
       switch (e.button) {
          case 2:
            if (rssadr) {
                e.target.oncontextmenu = function() { return false; };
                   var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
                   gClipboard.write(rssadr);
                   alertsService.showAlertNotification(gBrowser.mCurrentTab.image, rssadr, "Адресс RSS-ленты скопирован", false, "", null, ""); 
// тут должно быть действие для случая когда  !rssadr - т.е. несколько лент на сайте и надо открыть меню, которое откр-ся по левому клику 
                 break;
               }
         }
      }, false, document.getElementById("ub-feed-button"), document.getElementById("ub-feed-menu"));
  })();


...там сделано по-дураццки КМК: значек один-и-тот же id имеет, но иногда это меню - если на сайте больше одного источника RSS
а когда один источник - это иконка с адресом(в доп.свойствах). Свои действия посадил на ПКМ и норм. копируется адресс RSS . Теперь бы доделать , чтоб по томуже ПКМ, когда else (!rssadr) - открыть список лент.
Ежли кто знает, подскажите как.


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

Отсутствует

 

№194016-01-2018 19:06:47

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

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

подошел не так
получил по ид  проверь по аттрибуту не меню ли это
если  меню то ничего не делай и пусть оно откроется если не меню то копируй.


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

Отсутствует

 

№194116-01-2018 20:22:31

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

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

а в том и моя печаль-беда, что это ничего не изменит ;)  там всегда там всегда type = menu. яж грю, по дурацки сделано. Вот, на этом форуме три источнека
3e9d26720721753.jpg
а на хабре один и он виден сразу в тутлипе
fc649e720721813.jpg
... но в любом случае, я не знаю как открыть то меню, что открывается левый кликом - я хочу открыть правым кликом мыши.
буду ковырять еще, есть подозрение что так просто его нельзя вызвать и надо будет полностью строить самому(на примере исходного кода)

Отредактировано mokujin (16-01-2018 20:23:39)


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

Отсутствует

 

№194217-01-2018 01:10:00

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

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

могу предложить такой костыль
1 проверь что меняется в свойствах\атрибутах кнопки когда есть рсс и нет (да она скрывается но в дом дереве по идее должна оставаться)
2 пилишь свою кнопку помещая её туда а родную прячешь стилем (любым подходящим вариантом хоть просто уменьшая до пикселя)
3 в своей кнопке
а) детектишь показ родной и при показе показываешь свою
б) рсс адреса вытаскивешь сам из страницы (по <link rel="alternate" type="application/rss+xml"  )
в) назначаешь на кнопки мыши свои действия как захочешь

скрытый текст
вот тебе заготовка ессно переделай исправив ид
кинь в инициализацию
лкм даст алерт скм стандартное меню св копки пкм откоет меню с рсс

Выделить код

Код:

var btn = this;
this.onclick = function(event) {

if(event.button == 0){
alert("ЛКМ"); // Действие при клике ЛКМ
}
    

else if(event.button == 1) {
// Действие при клике СКМ 
gShowPopup(this); // Показываем контекстное меню кнопки
}
   

else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
// Действие при клике ПКМ без модификаторов 
var ps = document.getElementById("feedsPopup"); // ищи нужный попап в mainPopupSet
ps.openPopup(btn)



}
 };

// Блокируем контекстное меню при клике ПКМ без модификаторов..............
this.oncontextmenu = function(event) {
    if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        event.preventDefault();
        event.stopPropagation();
    }
};


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

Отсутствует

 

№194317-01-2018 03:03:10

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

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

okkamas_knife  :rock:
ну вот, опять чувствую себя дебилом... :lol:   Конечно, благодарю!
Получилась кнопка как хотел, вот такая:
Для PaleMoon (или старых версий FF или др. бравзеров где есть икона RSS в адр. строке) копировать адреса найденых RSS лент по ПКМ.

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

Выделить код

Код:

// ---------------- Скопировать адресс RSS ленты в адр. строке ПКМ или откроется меню с лентами и там тоже ПКМ копирует адрес ----------------------------------
 (function() {
     addEventListener("mousedown", e => {
           var rssadr = e.target.getAttribute('feed');
       switch (e.button) {
          case 2:
          e.target.oncontextmenu = function() { return false; };
            if (rssadr) {
                   var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
                   gClipboard.write(rssadr);
                   alertsService.showAlertNotification(gBrowser.mCurrentTab.image, rssadr, "Адресс RSS-ленты скопирован", false, "", null, "5000"); 
            } else {
                    var ps = document.getElementById("ub-feed-menu"); // так просто, а я ковырялся несколько дней и безтолку.
                    ps.showPopup( -1, -1, "popup", "bottomleft", "topleft"); // в других случаях может нужно openPopup()
                    break;
                    };
         }
      }, false, document.getElementById("ub-feed-button"), document.getElementById("ub-feed-menu"));
  })();


... я уже пол исходника(этой ф-ции что создает меню из omni.ja ) в кнопку скопировал, постоянно ошибки всякие.
Благодарю.


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

Отсутствует

 

№194417-01-2018 22:24:41

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

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

Заинтересовала кнопка GrabScroll (Firefox24+) от 24.04.2016. С тех пор, наверное, чего-то поменялось, и кнопочка не фурычит. Прокрутка не работает ни правой, ни левой кнопкой (менял в настройках), двойное нажатие ПКМ не вызывает меню СВ. Думал, конфликтует с установленным Yet Another Smooth Scrolling (хочу попробовать кнопку как альтернативу этому расширению) - отключал, ничего не меняется. bunda1, если можно - поправьте, пожалуйста. Спасибо ;)

Отредактировано Viatcheslav (17-01-2018 22:26:09)

Отсутствует

 

№194518-01-2018 11:39:05

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

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

Кнопка "увеличить изображение" аж 2014г. Работает,но не с мультипроцессом...FF58 - можно и выкл. мульти, так с запуском тормоза. Кнопку саму нельзя рихтануть?
Жалко.Уделал эту 58 , а только эту кнопку - никак....

Отсутствует

 

№194618-01-2018 12:21:02

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 484
UA: Firefox 57.0

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

Dumby насчет кнопки - консоль браузера в боковой панели и в новой вкладке.
Вы бы не могли посмотреть такой нюанс -после нажатия кнопки и закрытия консоли в любом меню в пункте "Веб - разработка" удваивается количество пунктов начиная  от Панели разработчика до Других инструментов. Или может это только у меня ? Хотя это не критично.
И еще просьба добавить   по любой другой кнопке - в bottom panel.

Отредактировано Andrey_Krropotkin (18-01-2018 22:28:57)

Отсутствует

 

№194718-01-2018 22:09:19

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

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

Viatcheslav пишет

Заинтересовала кнопка GrabScroll (Firefox24+) от 24.04.2016. С тех пор, наверное, чего-то поменялось, и кнопочка не фурычит. Прокрутка не работает ни правой, ни левой кнопкой (менял в настройках), двойное нажатие ПКМ не вызывает меню СВ.

Странно но у меня работает. Двойное нажатие ПКМ не вызывает меню СВ, потому что в Сustom Buttons что-то сломано и иеперь в всех кнопках меню нельзя вызвать двойным нажатием ПКМ. А многопроцессный режим у тебя включен?

Отсутствует

 

№194818-01-2018 22:41:05

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

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

bunda1 пишет

А многопроцессный режим у тебя включен?

Да, включен. А как должно быть?

Отсутствует

 

№194919-01-2018 09:49:27

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

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

Viatcheslav пишет

Да, включен. А как должно быть?

Должно быть так как тебе удобней, но похоже что GrabScroll не работает с включенным многопроцессным режимом и я пока не могу это исправить.

Отсутствует

 

№195019-01-2018 10:51:35

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

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

bunda1 пишет

Должно быть так как тебе удобней, но похоже что GrabScroll не работает с включенным многопроцессным режимом и я пока не могу это исправить.

Спасибо за ответ. Надеюсь, что ключевое слово - "пока" ;)

Отсутствует

 

Board footer

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