Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Opera на движке Presto (часть 25)

Модерирует : gyra, Maz

gyra (05-11-2017 00:45): Opera на движке Presto (часть 26)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Rwd

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
// ==UserScript==
// @name Open in background with long press
// @author Lex1
// @version 1.3.12
// @description Open links in background window on long press.
// @ujs:documentation http://ruzanow.ru/index/0-5
// @ujs:download http://ruzanow.ru/userjs/open-in-background-with-long-press.js
// ==/UserScript==
 
(function(){
var delay = 500;
var timerId = 0;
var clear = function(){if(timerId){clearTimeout(timerId); timerId = 0}};
 
opera.addEventListener('BeforeEvent.mousedown', function(e){
  var loc = window.location, evt = e.event, target = evt.target;
  if(evt.button == 0 && !evt.ctrlKey && !evt.shiftKey && !evt.altKey){
    timerId = setTimeout(function(){
        var link = target.nodeName.toLowerCase() == 'a' ? target : target.selectSingleNode('ancestor-or-self::*[(local-name()="a" or local-name()="area") and @href]');
        if(link && link.protocol.toLowerCase() != 'javascript:'){
            evt.stopPropagation();
            evt.preventDefault();
            if(link.hash && link.href.replace(link.hash, '') == loc.href.replace(loc.hash, '')){
                loc.hash = link.hash;
            }
            else{
                if(window.atob){
                    window.open(link.href).blur();
                    document.addEventListener('click', function(ev){
                        if(ev.target == target){
                            ev.stopPropagation();
                            ev.preventDefault();
                        };
                        document.removeEventListener(ev.type, arguments.callee, true);
                    }, true);
                }
                else{
                    var mEv = document.createEvent('MouseEvents');
                    mEv.initMouseEvent('mousedown', false, false, window, 0, 0, 0, 0, 0, false, false, false, false, 1, null);
                    link.dispatchEvent(mEv);
                    mEv.initMouseEvent('mouseup', false, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                    link.dispatchEvent(mEv);
                }
            }
        }
    }, delay);
  }
}, false);
 
document.addEventListener('mouseup', clear, false);
document.addEventListener('mousemove', clear, false);
})();

Всего записей: 623 | Зарегистр. 11-11-2016 | Отправлено: 11:57 07-04-2017
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Opera на движке Presto (часть 25)
gyra (05-11-2017 00:45): Opera на движке Presto (часть 26)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru