ifln
Теперь понял что ты хочешь, вот попробуй:
// Открывать ссылки в новой вкладке длинным кликом, от 05.05.2015. ................................ (function func() { const time = 500; // время удержания в мс const background = true; // открывать в фоновой вкладке function handleLongPress(e) { window.clearTimeout( func.timer ); setTimeout(function() { try { func.removeListener() } catch(ev) {} }, 0); var lab = XULBrowserWindow.overLink; if ( e.button || !lab || lab.startsWith("javascript") ) return; if ( e.type == "mousedown" && !e.target.className.startsWith("ui-slider-handle") ) { func.timer = setTimeout(function() { function c(e) { e.preventDefault(); e.stopPropagation() }; addEventListener('click', c, true); func.removeListener = function() { removeEventListener('click', c, true) }; var x = gBrowser.mCurrentTab._tPos +1; gBrowser.moveTabTo( gBrowser.loadOneTab(lab, {inBackground: background, referrerURI: makeURI(content.location.href)}), x); }, time ); } else clearTimeout( func.timer ); }; ["mouseup", "mousedown", "dragstart"] .forEach(function(type) { addEventListener(type, handleLongPress, true, gBrowser) }); })();
Отсутствует
bunda1
Ура, все работает как надо. Огромное спасибо!
Для меня это большое удобство. Привык в Опере так "раскидывать" вновь открываемые вкладки, что посмотреть сразу, что оставить на потом.
Отредактировано ifln (05-05-2015 20:31:28)
Отсутствует
То что кнопка дает возможность "открывать ссылки в новой вкладке длинным кликом" это понятно. Но вот кнопка дает еще один эффект "открытия ссылки в фоне при ее выделении". Можно это как-то отключить? Спасибо
Отсутствует
Kiril__777 пишет:
Но вот кнопка дает еще один эффект "открытия ссылки в фоне при ее выделении"
Я такой эффект не наблюдаю и по коду он и не должен быть. Как ты выделяешь ссылки?
Отсутствует
bunda1 есть еще вот такой скрипт для нормального выделения ссылок как в опере
Отсутствует
bunda1 пишет:
А что делает этот скрипт?
Позволяет выделять часть ссылки
если...замешкаться с началом выделения, на время задержки в кнопке, то откроется ссылка.
Отсутствует
oleg.sgh пишет:
если...замешкаться с началом выделения, на время задержки в кнопке, то откроется ссылка.
OMG! ну не надо, НЕ НАДО опять про это. Ну тотальный же IIuz#$$%%z . Оперу загнобили этими своими тупыми упрёками насчёт "я случайно выделил ссылку(одну букву) и она не открывается/открывается не там где ожидаю, сижу жду. я низаметил..." Ну неужто так неимоверно сложно заметить что делаешь в бравзере? Уже и мыши с частотами лазера для опр.позиции запредельными, и визуальные эффеты и... а глупые/ленивые юзеры все так же продолжают настаивать на своей глупости/лени. Это не оскорбление, правда не может быть оскорблением, хотя "сегодня" как знать...
Этоже получилась абалденная "фишка", а её опять хотят запихнуть в "баги". Против!
Отсутствует
Отредактировано jars (29-08-2015 17:59:48)
Отсутствует
bunda1
Извините, вы можете ответить на мой вопрос?
Отсутствует
thrower пишет:
Подскажите, что изменить в кнопке, чтобы она работала в PaleMoon?
Ну тогда подскажите алгоритм выявления проблемного места в коде кнопки. )
Где/в чем посмотреть, какой код не срабатывает?
Непривычно уже без этой кнопки как-то. С остальными кнопками проблем нет. А эта, одна из самых используемых, не работает.
Отредактировано thrower (05-02-2016 19:59:22)
Отсутствует
thrower пишет:
Ну тогда подскажите алгоритм выявления проблемного места в коде кнопки. )
Где/в чем посмотреть, какой код не срабатывает?
Кажется в коде не работает XULBrowserWindow.overLink
Добавлено 06-02-2016 01:10:41
thrower
Попробуй:
// Открывать ссылки в новой вкладке длинным кликом, от 19.12.2013. ................................ (function func() { const time = 500; // время удержания в мс const background = false; // открывать в фоновой вкладке const nextToCurrent = true; // открывать рядом с текущей вкладкой function handleLongPress(e) { window.clearTimeout( func.timer ); setTimeout(function() { try { func.removeListener() } catch(ev) {} }, 0); var lab = document.getElementById("status4evar-status-text").value; if ( e.button || !lab || lab.startsWith("javascript") ) return; if ( e.type == "mousedown" && !e.target.className.startsWith("ui-slider-handle") ) { func.timer = setTimeout(function() { function c(e) { e.preventDefault(); e.stopPropagation() }; addEventListener('click', c, true); func.removeListener = function() { removeEventListener('click', c, true) }; gBrowser.loadOneTab( lab, {relatedToCurrent: nextToCurrent, inBackground: background, referrerURI: makeURI(content.location.href)} ); }, time ); } else clearTimeout( func.timer ); }; ["mouseup", "mousedown", "dragstart"] .forEach(function(type) { addEventListener(type, handleLongPress, true, gBrowser) }); })();
Отредактировано bunda1 (06-02-2016 01:10:41)
Отсутствует
bunda1 пишет:
Странно, у меня на чистом PaleMoon 26 работает
Проверь на чистом профиле.
Понял, в чем дело. Дело во вшитом расширении PM Statusbar.
У меня изменена настройка Show links in Statusbar на Popup (как в Файрфоксе). А изменения кода кнопки (getElementById) привязаны именно к этой дефолтной настройке. И поэтому при любом изменении этого Show links in Statusbar кнопка перестает работать.
Немного неудобно, но зато работает!
bunda1, спасибо за помощь.
Отредактировано thrower (06-02-2016 21:02:50)
Отсутствует
thrower пишет:
У меня изменена настройка Show links in Statusbar на Popup (как в Файрфоксе)
// Открывать ссылки в новой вкладке длинным кликом, от 19.12.2013. ................................ (function func() { const time = 500; // время удержания в мс const background = false; // открывать в фоновой вкладке const nextToCurrent = true; // открывать рядом с текущей вкладкой function handleLongPress(e) { window.clearTimeout( func.timer ); setTimeout(function() { try { func.removeListener() } catch(ev) {} }, 0); var lab = XULBrowserWindow.statusTextField.value; if ( e.button || !lab || lab.startsWith("javascript") ) return; if ( e.type == "mousedown" && !e.target.className.startsWith("ui-slider-handle") ) { func.timer = setTimeout(function() { function c(e) { e.preventDefault(); e.stopPropagation() }; addEventListener('click', c, true); func.removeListener = function() { removeEventListener('click', c, true) }; gBrowser.loadOneTab( lab, {relatedToCurrent: nextToCurrent, inBackground: background, referrerURI: makeURI(content.location.href)} ); }, time ); } else clearTimeout( func.timer ); }; ["mouseup", "mousedown", "dragstart"] .forEach(function(type) { addEventListener(type, handleLongPress, true, gBrowser) }); })();
Отсутствует
villa7
Пробовал менять но без результата. Попробую еще в новом профиле...может конфликт с другими кнопами.
Странно, но сейчас заработало. Значит сам косячил Спасибо.
Отредактировано oleg.sgh (29-02-2016 11:12:06)
Отсутствует