5

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

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

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

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

4 ответа4

2

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

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

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

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

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

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

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

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

1

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

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

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

#IfWinActive, - Mozilla Firefox$

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

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, когда кажется, что видеоплеер имеет фокус.

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% )
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .