Отключить горячую клавишу Control-L на YouTube

5

Я привык использовать Ctrllдля доступа к моей адресной строке. К сожалению, YouTube «услужливо» определяет Ctrllкак горячую клавишу для перехода на несколько секунд вперед в воспроизводимом в данный момент видео, поэтому мне нужен способ, чтобы YouTube не мог добавить привязку этого ключа. Пользовательский скрипт Greasemonkey / Scriptish, который отключает привязку после загрузки страницы, будет приемлемым.

Чтобы быть ясным, это в то время как я на странице видео YouTube, а не на стороннем сайте, который встроил видео YouTube, и поведение происходит, когда Flash Player не имеет фокуса.

Примечание: я знаю, что Altdделает то же самое, что и Ctrllв Firefox, но я слишком привык, Ctrllи я не буду вынужден переключаться.

Изменить: решения для конкретных ОС менее желательны, так как я использую несколько ОС; решения в браузере являются предпочтительными.

Heptite
источник
Какая операционная система?
iglvzx
1
ОС не актуальна. Это YouTube говорит браузеру, в данном случае Firefox, делать то, что я не хочу. (И прежде чем меня спросили, да, я проверил, что это происходит независимо от ОС.)
Гептит
Ой. Я знаю. Если вы работаете в Windows, я бы предложил AutoHotkey легко обойти это.
iglvzx
F6 также выбирает адресную строку в FF с бонусом не только на одно нажатие клавиши, но и в IE. (Однако Opera использует F8.) Однако Google добавляет больше сочетаний клавиш на свои веб-сайты, очевидно полагая, что если вы хотите взаимодействовать с самим браузером, вам следует схватить мышь.
staticsan

Ответы:

2

Во-первых, ошибка существует с 2001 года. Или раньше. Об этом сообщалось еще тогда.

Сообщено: 2001-05-01 14:28 PDT

Сообщение об ошибке Mozilla . Это говорит вам о том, что Мозилла не только знает об этом, но они уже давно об этом знают. О, и я знаю, что это, кажется, более общий отчет об ошибках, но этот здесь более свежий, более специфичный для вашей проблемы и помечен как дубликат первого, с которым я связал вас.

Тем не менее, есть есть код , чтобы отключить некоторые (большинство?) Youtube сочетания клавиш ... но она должна быть добавлена к внедренных тегов , когда видео помещается на веб - странице.

& Усилителя: disablekb = 1

В Интернете есть множество сайтов, передающих эту информацию, вот только один . К сожалению, я считаю, что если бы это было так просто, как запуск сценария Greasemonkey для добавления этого кода в любые теги видео, добавленные YouTUbe, при загрузке страницы, это было бы уже сделано. Люди в Мозилле.

Теперь я провел некоторое время, копаясь в аддонах в Firefox, и наткнулся на этот, который называется «Стильный», который позволяет персонализировать ваш опыт на таких сайтах, как Youtube. Лично я не знаю, но в зависимости от уровня настройки и того, как он выполняет то, что он делает, вы можете получить его для внедрения кода.

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

Бон Гарт
источник
Стильный для CSS. Это не позволяет вам изменять исходный код, как Greasemonkey делает с JavaScript.
iglvzx
@iglvzx Я боялся этого. Но я не смог найти сценарий greasemonkey, который позволил бы вам внедрить этот код на страницу Youtube и встроенный видеокод ... из-за того, как он работает, я думаю.
Бон Гарт
1
Код, используемый для отображения видео на странице YouTube, отличается от встроенного HTML, который они вам дают. Я не уверен, что disablekbзапрос будет работать здесь.
iglvzx
@iglvzx Это тоже есть. Опять же, это может быть причиной того, что проблема существует уже более 11 лет.
Бон Гарт
Интересно, что control-l по-прежнему пропускает видео вперед, даже если проигрыватель на базе Flash не имеет фокуса, хотя он также выбирает строку местоположения. Я все еще хочу подавить часть пропуска вперед, хотя.
Гептит
1

Самым простым решением с использованием AutoHotkey было бы сопоставить Ctrl+ Lс Alt+ Dпри просмотре страницы YouTube в Firefox:

SetTitleMatchMode, RegEx
#IfWinActive, - YouTube - Mozilla Firefox$
    ^l::SendInput, !d
#IfWinActive

Поскольку YouTube может изменить свою <title>схему именования HTML в любое время, более надежным решением будет заменить первую #IfWinActiveстроку на:

#IfWinActive, - Mozilla Firefox$

Это применимо к любой вкладке / окну Firefox, но вы не должны заметить различий в функциональности.

оборота iglvzx
источник
Любая идея, почему это не работает, если я не помещу это выше всех моих других правил горячей клавиши?
Гептит
Вам не хватает каких-либо обязательных операторов возврата для любых других ваших горячих клавиш? Мне нравится размещать #IfWinActiveблоки в конце моих сценариев, без проблем.
iglvzx
Похоже, что если оно ниже любого Capslock :: rule, независимо от того, что в нем, оно не работает.
Гептит
Поцарапайте это, любое правило выше этого нарушает это. Это AutoHotkey_L.
Гептит
0

У меня была та же проблема, и я написал быстрое исправление в сценарии http://www.autohotkey.com/ для использования в Firefox в Windows. Сценарий управляет горячими клавишами ctrl + tab, ctrl + shift + tab и ctrl + l, когда Firefox активен, и заставляет их всегда выполнять обычные действия горячих клавиш Firefox (следующая вкладка, предыдущая вкладка и активировать панель инструментов URL). Работает в оконном режиме и в полноэкранном режиме. Примечание. Скриптовая мышь щелкает нейтральное место в левом верхнем углу окна Firefox. Если вы изменили графический интерфейс через «Стильный», чтобы покрыть это пятно, например, кнопкой, то вам может потребоваться изменить значение x / y команды Click, чтобы нацелиться на какое-то другое пятно без кнопки. Если вы хотите, чтобы этот скрипт работал только для ctrl + l, удалите вторую и третью строку кода.

изменить: извините, значение по умолчанию х / у ниже может не работать в режиме развернутого окна в зависимости от того, как вы отображаете кнопку Firefox. Опять же, измените x / y так, чтобы он указывал на точку без кнопки, например, на несколько пикселей справа от кнопки Firefox.

#IfWinActive, ahk_class MozillaWindowClass
^Tab::
^+Tab::
^l::
SystemCursor("Toggle")
SetDefaultMouseSpeed, 0
MouseGetPos, mx, my
click 2,2
if A_ThisHotkey = ^Tab
 send ^{tab}
if A_ThisHotkey = ^+Tab
 send ^+{tab}
if A_ThisHotkey = ^l
 send ^l
MouseMove, %mx%,%my%
SystemCursor("Toggle")
return
#IfWinActive


; http://www.autohotkey.com/docs/commands/DllCall.htm#HideCursor

SystemCursor(OnOff=1)   ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others
{
    static AndMask, XorMask, $, h_cursor
        ,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; system cursors
        , b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13   ; blank cursors
        , h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13   ; handles of default cursors
    if (OnOff = "Init" or OnOff = "I" or $ = "")       ; init when requested or at first call
    {
        $ = h                                          ; active default cursors
        VarSetCapacity( h_cursor,4444, 1 )
        VarSetCapacity( AndMask, 32*4, 0xFF )
        VarSetCapacity( XorMask, 32*4, 0 )
        system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650
        StringSplit c, system_cursors, `,
        Loop %c0%
        {
            h_cursor   := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% )
            h%A_Index% := DllCall( "CopyImage",  "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 )
            b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0
                , "int",32, "int",32, "uint",&AndMask, "uint",&XorMask )
        }
    }
    if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T"))
        $ = b  ; use blank cursors
    else
        $ = h  ; use the saved cursors

    Loop %c0%
    {
        h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 )
        DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% )
    }
}
only_passing_by
источник
2
Это слишком сложно.
iglvzx
Да, только для функциональности ctrl + l ваше решение проще. Но youtube также берет Ctrl + Tab, и те, кто ищет исправления для этого, также могут счесть это полезным.
only_passing_by
0

После еще нескольких испытаний я думаю, что ни мой AHK-код, ни приведенный выше код AHK полностью не решают проблему даже в Firefox в Windows. Чтобы воспроизвести оставшуюся проблему, выполните следующие действия:

  1. загрузите клип на YouTube, например http://www.youtube.com/watch?v=a1Y73sPHKxw
  2. щелкните в любом месте видеоплеера, например, кнопку паузы
  3. нажмите tab или ctrl + tab или ctrl + l

результат: для ctrl + l ничего не происходит. Для управления + вкладка игрок переключает фокус на следующий элемент управления и отмечает его толстой желтой рамкой

Сценарий autohotkey не отменяет управление этими горячими клавишами на YouTube, когда кажется, что видеоплеер имеет фокус.

only_passing_by
источник