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

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

№7613-08-2016 22:37:41

cahesigwias
Участник
 
Группа: Members
Зарегистрирован: 19-05-2015
Сообщений: 8
UA: Firefox 48.0

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

Очень полезно расширение, но не работает с включенной мультипроцессностью, это можно исправить?

Отсутствует

 

№7714-08-2016 22:22:37

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

cahesigwias пишет:

Очень полезно расширение, но не работает с включенной мультипроцессностью, это можно исправить?

Вот один хороший человек исправил:

Выделить код

Код:

(code => {
    var delay = 500;              // время удержания в мс
    var inBackground = true;      // открывать в фоновой вкладке
    var relatedToCurrent = true;  // открывать рядом с related вкладкой

    var p = "CB" + _id.slice(20) + ":LongPressHandler:";
    var msgDestroy = p + "Destroy", msgResponse = p + "Response";
    code = code.replace(/%MD%/g, msgDestroy).replace("%MR%", msgResponse)
        .replace("%DL%", delay).replace("%BG%", inBackground);

    var url = "data:," + encodeURIComponent(code);
    var mm = window.getGroupMessageManager("browsers");
    mm.loadFrameScript(url, true);

    function handleLongPress(msg) {
        var [link, ref, ctrl] = msg.data;
        var bg = inBackground != null ? inBackground
            : Services.prefs.getBoolPref("browser.tabs.loadInBackground");
        gBrowser.loadOneTab(link, {
            relatedToCurrent, inBackground: ctrl != bg, //referrerURI: makeURI(ref)
        });
    }
    mm.addMessageListener(msgResponse, handleLongPress);

    addDestructor(() => {
        mm.removeDelayedFrameScript(url);
        mm.broadcastAsyncMessage(msgDestroy);
        mm.removeMessageListener(msgResponse, handleLongPress);
    });
})(`({
    init() {
        addEventListener("mousedown", this, false);
        addMessageListener("%MD%", this);
    },
    receiveMessage() {
        removeEventListener("mousedown", this, false);
        removeMessageListener("%MD%", this);
    },
    handleEvent(e) {
        if (e.type == "mousedown") {
            if (e.button || e.shiftKey || e.altKey || e.detail != 1) return;

            var a = e.originalTarget.closest("a[href]");
            if (!a || a.href.startsWith("javascript:")) return;

            this.ctrl = e.ctrlKey;
            this.initLongPress(a);
        } else {
            if (e.type == "click" && !this.link) e.preventDefault();
            this.destroyLongPress();
        }
    },
    get timer() {
        delete this.timer;
        return this.timer = Components.classes["@mozilla.org/timer;1"]
            .createInstance(Components.interfaces.nsITimer);
    },
    notify() {
        sendSyncMessage("%MR%", [this.link.href, this.link.ownerDocument.URL, this.ctrl]);
        this.link = null;
        if (!%BG%) this.destroyLongPress();
    },
    initLongPress(a) {
        addEventListener("click", this, true);
        addEventListener("dragstart", this, false);
        this.timer.initWithCallback(this, %DL%, this.timer.TYPE_ONE_SHOT);
        this.link = a;
    },
    destroyLongPress() {
        removeEventListener("click", this, true);
        removeEventListener("dragstart", this, false);
        this.link && this.timer.cancel();
        this.link = null;
    }
}).init();`);

Отсутствует

 

№7817-08-2016 22:39:33

cahesigwias
Участник
 
Группа: Members
Зарегистрирован: 19-05-2015
Сообщений: 8
UA: Firefox 48.0

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

bunda1 пишет:

cahesigwias пишет:

Очень полезно расширение, но не работает с включенной мультипроцессностью, это можно исправить?

Вот один хороший человек исправил:

Большое спасибо, заработало. Есть два нюанса, может возможно их исправить?
1. Функция начинает работать только если хоть раз нажать на саму кнопку после запуска фаерфокса, может нужно что то прописать в код инициализации или я не так создаю кнопку? на панель добавляю.
2. Если переключить inBackground = true в false (именно так и и задумывал работу) то вкладки начинают открываться в конце списка treestyletab, а не под текущей вкладкой, по сути relatedToCurrent = true начинает игнорироваться, хотя если открывать вкладку в бекграудне, то все работает как нужно.

Отсутствует

 

№7923-12-2016 11:48:09

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

В предыдущих версиях [firefox], не срабатывал клик при выделении ссылки с помощью скрипта Select like opera. Можно их опять подружить?
То есть, если выделяется часть ссылки то клик не срабатывает. Как пример, эти

http://content.foto.my.mail.ru/mail/oleg.sgh2/_blogs/i-7697.jpg

Отредактировано oleg.sgh (23-12-2016 11:54:10)

Отсутствует

 

№8009-01-2017 10:28:51

shadow_user
Участник
 
Группа: Members
Зарегистрирован: 14-02-2007
Сообщений: 21
UA: Firefox 38.0

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

Кнопка нормальным левым кликом открывает сайт в текущей вкладке.

loadURI("https://forum.mozilla-russia.org/viewforum.php?id=34/");

Просьба поправить ее, чтобы нормальным левым кликом открывала сайт в новой фоновой или новой активной вкладке (с возможностью исправить код для незнаек, как я).
Ad
Решено. Нашел готовую кнопку, открывает в новой активной вкладке https://forum.mozilla-russia.org/viewto … 65#p684365

Отредактировано shadow_user (09-01-2017 12:43:19)

Отсутствует

 

№8109-01-2017 12:37:07

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

oleg.sgh пишет:

В предыдущих версиях [firefox], не срабатывал клик при выделении ссылки с помощью скрипта

А если так - длинным ПКМ временно превратить ссылку в текст.

Выделить код

Код:

// Открывать ссылки длинным кликом, от 09.01.2017. .................... 
(function func() {
   var time = 500;            // время удержания в мс
   var background = true;     // открывать в фоновой вкладке
   var nextToCurrent = true;  // открывать рядом с текущей вкладкой
 
   function handleLongPress(e) { 
      window.clearTimeout(func.timer);
      setTimeout(()=> { try { func.removeListener() } catch(e) {} }, 0);
      
      var lab = XULBrowserWindow.overLink;
    
      if ( e.button == 1 || !lab || lab.startsWith("javascript") ) return;
   
      if ( e.type == "mousedown" && !e.target.className.startsWith("ui-slider-handle") ) {
           func.timer = setTimeout(()=> {
              function c(e) { e.preventDefault(); e.stopPropagation() };
              addEventListener('click', c, true);
              func.removeListener =()=> { removeEventListener('click', c, true) }; 
           
              if ( e.button == 0 )
                   gBrowser.loadOneTab(lab, {relatedToCurrent: nextToCurrent, inBackground: background, referrerURI: makeURI(content.location.href)});
              else
                   {
                   var targ = e.target;
                   targ.removeAttribute('href');
                   XULBrowserWindow.overLink = '';
                   var lastStyle = getComputedStyle(targ);
                   targ.style.cssText = "-moz-appearance: none; color: black !important; text-decoration: none !important;";
                   
                   setTimeout(()=> { 
                      targ.setAttribute('href', lab);
                      targ.style.cssText = lastStyle;
                   }, 5000);
                   }
                   
           }, time); 
           }
      else 
           clearTimeout(func.timer);
   };
   ["mouseup", "mousedown", "dragstart"]
   .forEach(type=> { addEventListener(type, handleLongPress, true, gBrowser) });
})();

Отсутствует

 

№8209-01-2017 13:29:20

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

bunda1

А если так - длинным ПКМ превратить ссылку в текст.

Все равно срабатывает при выделении с произвольного места (со скриптом). Ссылку с начала и с конца можно выделить без скрипта и с текущей версией кнопки.
Смысл был в следующим:
В паре со скриптом можно было выделить нужную часть ссылки (выделенное автоматом шло в поиск), открыть длинным кликом в новой активной  вкладке, что бы открыть описание и открыть эту же выделенную ссылку длинным кликом, если найденное в поиске непонятно.

программа, например
http://content-14.foto.my.mail.ru/mail/oleg.sgh2/_blogs/b-7719.png

Если бы это было разовое действие, то да. По той же программе я ищу фильмы и передачи для посмотреть.

Отредактировано oleg.sgh (09-01-2017 13:33:30)

Отсутствует

 

№8309-01-2017 13:54:32

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

oleg.sgh пишет:

можно было выделить нужную часть ссылки

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

Отсутствует

 

№8409-01-2017 14:03:58

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

bunda1
У меня не выделяет и открывает кликом, хотя ссылка меняет цвет.
СВ, текущая версия на АМО.

Отсутствует

 

№8509-01-2017 14:13:47

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

oleg.sgh пишет:

bunda1
У меня не выделяет и открывает кликом, хотя ссылка меняет цвет.
СВ, текущая версия на АМО.

Попробуй еще Сегодня 12:37:07, я там кое что исправил.

Отсутствует

 

№8609-01-2017 14:39:56

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

bunda1
Я так понял ссылка появляется вновь через некоторое времени...но текст не выделяется правой кн. мыши. На левой у меня жесты...если что.
Вдобавок, при отпускании ЛКМ, происходит переход по ссылке

скрытый текст
http://storage3.static.itmages.ru/i/17/0109/h_1483961782_8915694_3fab9268de.gif

Программа

Отсутствует

 

№8709-01-2017 15:07:26

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

oleg.sgh пишет:

bunda1
но текст не выделяется правой кн. мыши.

Нет, текст надо выделяеть левой кн. мыши.

Отсутствует

 

№8809-01-2017 15:09:48

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

bunda1
Упс, перепутал в тексте :dumb:
Не выделяется левой, жесты на правой.

Отсутствует

 

№8909-01-2017 15:15:59

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 1992
UA: Firefox 42.0

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

oleg.sgh
Выделяет по ЛКМ нормально, значит что-то у тебя, попробуй на чистом, сам убедишься, а переход по ссылке при отпускании ЛКМ происходит если текст снова превратился в ссылку, что логично. Просто увеличь время, или быстрее выделяй. :)


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№9009-01-2017 15:17:30

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

oleg.sgh пишет:

bunda1
Упс, перепутал в тексте :dumb:
Не выделяется левой, жесты на правой.

Ну тогда не знаю, у меня вроде работает на FF50 без e10.

Отсутствует

 

№9109-01-2017 17:28:42

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

villa7, bunda1
Да, на чистом работает. Найти по быстрому с чем конфликтует не смог. Появляется без всякой закономерности при сборке профиля.
Дело еще в другом, ссылки прошедших передач не подсвечиваются и не видно когда сработает кнопка.
К тому же, лишний клик сводит на нет удобность кнопки.

Отсутствует

 

№9212-05-2017 21:16:42

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

Re: [CB]Открывать ссылки в новой вкладке длинным кликом

bunda1
А как в коде изменить mousedown на mouseup?
(чтобы открытие происходило после mouseup)

Отсутствует

 

Board footer

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