Значит у меня что-то не так установлено
Извините за беспокойство.
Может у кого-то тоже не так установлено, как надо - тогда предложенный мною способ как воркэраунд сойдёт имхо - за неимением титульной бумаги, пишем на простой
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
bunda1
Со старым кодом при загрузке страницы ложно срабатывало выделение пока страница полностью не загрузилась, с новым кодом если страница ещё полностью не загружена то долгий клик по ссылкам не работает пока страница полностью не загрузится, но тут уж наверно ничего не сделать, либо либо.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
bunda1
Со старым кодом при загрузке страницы ложно срабатывало выделение пока страница полностью не загрузилась, с новым кодом если страница ещё полностью не загружена то долгий клик по ссылкам не работает пока страница полностью не загрузится, но тут уж наверно ничего не сделать, либо либо.
Наверно нет, код берет адрес ссылки из подсказки внизу а там при загрузке страницы адрес страницы. Разве только опять брать адрес напрямую из ссылки(сложно) или остановить загрузку при длинном клике. Если придумаю простое решение сообщу.
Отсутствует
villa7
Попробуй:
// Открывать ссылки в новой вкладке длинным кликом, от 15.12.2013. ................................ (function func() { const time = 500; // время удержания в мс const background = false; // открывать в фоновой вкладке const nextToCurrent = true; // открывать рядом с текущей вкладкой function handleLongPress(e) { setTimeout(function() { try { func.removeListener() } catch(e){} }, 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) }; 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) }); })();
Отсутствует
Но если "const background = false; // открывать в фоновой вкладке" то вкладка откроется в форграунде...
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Но если "const background = false; // открывать в фоновой вкладке" то вкладка откроется в форграунде...
Ну так и задумано
Отсутствует
А как бы сделать чтобы пункт контекстного меню "Открыть ссылку в новой вкладке" открыл новую foreground вкладку, при том, что в about:config у меня стоит browser. tabs. loadInBackground=true и менять эту настройку я бы не хотел?
Можно кликнуть по ссылке зажав Ctrl + Shift, тогда фокус переходит на новый таб, но а как бы повесить это на пункт меню?
Отсутствует
thrower пишетА не мог бы ты добавить в кнопку "(Принудительно) открывать ссылки в текущей вкладке длинным ПКМ"?
Присоединяюсь!
// Открывать ссылки длинным кликом, от 21.01.2014. ................................ (function func() { const time = 500; // время удержания в мс const background = true; // открывать в фоновой вкладке const nextToCurrent = true; // открывать рядом с текущей вкладкой function handleLongPress(e) { window.clearTimeout( func.timer ); setTimeout(function() { try { func.removeListener() } catch(ev) {} }, 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() { function c(e) { e.preventDefault(); e.stopPropagation() }; addEventListener('click', c, true); func.removeListener = function() { removeEventListener('click', c, true) }; e.button == 0 ? gBrowser.loadOneTab( lab, {relatedToCurrent: nextToCurrent, inBackground: background, referrerURI: makeURI(content.location.href)} ) : gBrowser.loadURI( lab, makeURI(content.location.href) ); }, time ); } else clearTimeout( func.timer ); }; ["mouseup", "mousedown", "dragstart"] .forEach(function(type) { addEventListener(type, handleLongPress, true, gBrowser) }); })()
Добавлено 21-01-2014 20:35:44
А как бы сделать чтобы пункт контекстного меню "Открыть ссылку в новой вкладке" открыл новую foreground вкладку, при том, что в about:config у меня стоит browser. tabs. loadInBackground=true и менять эту настройку я бы не хотел?
Можно кликнуть по ссылке зажав Ctrl + Shift, тогда фокус переходит на новый таб, но а как бы повесить это на пункт меню?
(function () { var openlinkintab = document.getElementById("context-openlinkintab"); openlinkintab.setAttribute("oncommand", "event.preventDefault(); this.run();"); openlinkintab.run = function() { gBrowser.loadOneTab( gContextMenu.getLinkURL(), {relatedToCurrent: true, inBackground: false, referrerURI: makeURI(content.location.href)} ) }; addDestructor(function() { openlinkintab.setAttribute("oncommand", "gContextMenu.openLinkInTab();"); }); })();
Отредактировано bunda1 (21-01-2014 20:35:44)
Отсутствует
Спасибо bunda1
Работает четко
Отсутствует
bunda1, работает! Только появился нюанс...
Длинный ПКМ стал работать как надо. Принудительно загружает все ссылки в текущей вкладке.
А вот длинный ЛКМ, к сожалению, изменил свое поведение: стало загружаться 2 экземпляра ссылки - в новой фоновой вкладке и, после отпускания клика (mouseup, release), в этой же самой.
Можно это как-нибудь исправить?
Отсутствует
bunda1, работает! Только появился нюанс...
Длинный ПКМ стал работать как надо. Принудительно загружает все ссылки в текущей вкладке.
А вот длинный ЛКМ, к сожалению, изменил свое поведение: стало загружаться 2 экземпляра ссылки - в новой фоновой вкладке и, после отпускания клика (mouseup, release), в этой же самой.Можно это как-нибудь исправить?
Я Вам могу посоветовать простой воркэраунд:
Нажимаете ссылку и после таймаута (когда фоновая вкладка начинает открываться) не отпуская ЛКМ уводите курсор из-под ссылки и уже тогда - отпускаете
Ведь Вам главное - не отпустить над ссылкой
Почему открывается и в текущей? Да потому что так самим сайтом задумано.
Если открывать в активной, то переход на активную вкладку не даёт исходному сайту вести себя так (мы его покинули), а если Вы открываете фоновую, то значит остаётесь на том же сайте. Вот он и делает то, что задумывал при отпускании ЛКМ. Откуда ему знать о длинном клике?
Отредактировано difabor (22-01-2014 02:35:22)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
difabor
Я Вам могу посоветовать простой воркэраунд:
Нажимаете ссылку и после таймаута (когда фоновая вкладка начинает открываться) не отпуская ЛКМ уводите курсор из-под ссылки и уже тогда - отпускаете
Тогда будет открываться нов. вкладка в фоне.
Да потому что так самим сайтом задумано.
Независимо от сайта.
Хотя, по поводу нового длинного ЛКМ, изменяется в зависимости от изначального таргета ссылки (в новой или текущей вкладке).
Эта кнопка как раз и изменяет (плюет на) то, что "сайтом задумано"!
Отсутствует
difabor
Я Вам могу посоветовать простой воркэраунд:
Нажимаете ссылку и после таймаута (когда фоновая вкладка начинает открываться) не отпуская ЛКМ уводите курсор из-под ссылки и уже тогда - отпускаетеТогда будет открываться нов. вкладка в фоне.
Да потому что так самим сайтом задумано.
Независимо от сайта.
Хотя, по поводу нового длинного ЛКМ, изменяется в зависимости от изначального таргета ссылки (в новой или текущей вкладке).Эта кнопка как раз и изменяет (плюет на) то, что "сайтом задумано"!
Так так и задумано, чтоб новая вкладка открывалась в фоне.
Если Вы хотите, чтоб не в фоне (т.е. чтоб была активной), то это ещё проще и не надо предложенного воркэраунда -
замените const background = true на const background = false
Отредактировано difabor (22-01-2014 04:10:47)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
difabor
замените const background = true на const background = false
Действительно.
Изменив этот параметр, получил желаемое поведение!
Спасибо за совет.
Отсутствует
difabor
замените const background = true на const background = false
Действительно.
Изменив этот параметр, получил желаемое поведение!
Спасибо за совет.
Пожалуйста
А вот если захотите в фоне открывать, то не забудьте о трике - утягивать курсор с ссылки после длинного нажатия, не отпуская кнопку
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Длинный ПКМ стал работать как надо. Принудительно загружает все ссылки в текущей вкладке.
А вот длинный ЛКМ, к сожалению, изменил свое поведение: стало загружаться 2 экземпляра ссылки - в новой фоновой вкладке и, после отпускания клика (mouseup, release), в этой же самой.
У меня ЛКМ работает как надо в не зависимости от const background.... Может у тебя конфликт с другим расширением и скриптом
Отсутствует
Использую "Открывать ссылки в новой вкладке длинным кликом, от 19.12.2013".
Сейчас longclick и СКМ открывают background вкладку в самом конце. Т.к. при настройке браузера browser.tabs.insertRelatedAfterCurrent;false const nextToCurrent = true; не работает. Отключал остальные расширения, не помогло. Можно ли сделать, чтобы по longclick вкладка открывалась вслед за активной?
Если установить browser.tabs.insertRelatedAfterCurrent;true
можно настроить const nextToCurrent для открытия и вслед за активной и в конце всех вкладок. Но мне важно чтобы СКМ открывал в конце.
Отсутствует
ifln
Пролистайте к середине.
Открывать любую новую вкладку справа от текущей
https://forum.mozilla-russia.org/viewtopic.php?id=52227
Отредактировано villa7 (03-05-2015 17:16:43)
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
villa7
А с этим кодом все открывает вслед за активной.
А вот и нет, Открывать ссылки в новой вкладке длинным кликом вообще на СКМ не влияет.
Отсутствует
А вот и нет, Открывать ссылки в новой вкладке длинным кликом вообще на СКМ не влияет.
Правильно. Влияние обратное. Настройка браузера browser.tabs.insertRelatedAfterCurrent;false не позволяет открыть вкладку вслед за текущей по longclick. Т.е. сonst nextToCurrent = true не работает.
Если добавить кнопку Открывать любую новую вкладку справа от текущей, то и СКМ будет открывать справа от активной.
Я хотел настроить, чтобы longclick открывал справа, а СКМ в конце.
Отсутствует