2017-02-07 5 views
8

각 페이지에 "제출"및 "취소"와 같은 버튼이있는 웹 사이트에서 작업하고 있습니다. 각 버튼에는 accesskey 속성이 있습니다. 제출 버튼의 accesskey 속성은 S으로 설정되고 취소 버튼의 accesskey 속성은 C으로 설정됩니다.Firefox의 액세스 키 수정 키

액세스 키는 다른 브라우저에서 다른 수식어를 사용하여 활성화됩니다. 파이어 폭스는 고도변화 키를 모두 사용하면서 인터넷 익스플로러, 사파리, 구글 크롬, 그냥 고도를 사용합니다. 또한 Firefox는 alt + s을 사용하여 기록 메뉴를 엽니 다.

이 질문에 대한 대답은 프로덕션 사이트에서 가능하지 않은 브라우저 구성의 설정 변경을 제안해서는 안됩니다.

Firefox가 accesskey에 사용하는 수정 자 키를 단지 alt으로 변경하고 기록 메뉴가 열리지 않게하려면 어떻게해야합니까?

나는 우분투 16.04에서 일하고있다.

+0

를 참조 염두에두고, _how_을 설명해주십시오 모든 것이 가능하지는 않으며, 이것이 아니라면, 그것은 유효한 대답입니다. –

+0

@ QPaysTaxes 기존 답변이 작동하지 않습니다 우분투에서 Firefox 브라우저 16.04 –

+0

제게 적합한 해결책을주세요. –

답변

-2

당신은 다음이 문서는 추가 정보를 가지고 시도에 대해 깊은 지식을 원하는 경우 : http://kb.mozillazine.org/Ui.key.contentAccess

당신이 "에서 탭"기본 설정 대화 상자로 사용되지 수 있다는 것을 발견하면, 반환하는 선호가를

  1. 새 탭, 유형에

    또는 약 붙여 넣습니다 : 이전 스타일 대화 상자로 설정 주소 표시 줄 및 Enter 키를 누릅니다. 조심성있는 버튼을 클릭하십시오. 목록 입력 위의 검색 상자에

  2. 또는 현 붙여 목록이 필터링 동안 일시 정지

  3. 거짓

  4. 에 충실에서 에게 그것을 전환 할 browser.preferences.inContent 환경 설정을 두 번 클릭

참고 : 나는 이것이 영원히 또는 과도기적 기능인지 여부를 모르겠다.

+0

about : config에 관한 내용을 변경하고 싶지 않습니다. –

6

accesskey을 활성화하는 데 필요한 키 조합을 변경할 수는 없지만 달성하려는 대상은 accesskey 속성을 사용할 필요가 없습니다. keydown 이벤트를 직접들을 수 있습니다.

문서에 keydown 이벤트 리스너를 추가합니다. 핸들러 함수에서 alt 및 s 키가 눌려 졌는지 확인하십시오. 다른 수정 자 키가 눌려져 있지 않은 경우 이벤트의 기본 동작을 차단 한 다음 제출 버튼에서 클릭 이벤트를 트리거합니다.제출 버튼에 클릭 이벤트를 트리거링 차례로,이 이벤트 리스너를 제출 트리거 triggering the submit event on the form directly may not.

const submit = document.querySelector('#submit') 

document.addEventListener('keydown', e => { 
    // If the only modifier key is the alt key, and the s key is pressed 
    if(!e.metaKey && !e.ctrlKey && !e.shiftKey && e.altKey && e.key === 's') { 
    e.preventDefault() // Prevent the mozilla history menu from opening 
    submit.click()  // Trigger the form submission 
    } 
}) 
<form action=""><button type="submit" id="submit"><u>S</u>ubmit</button></form> 

노트 반면됩니다
1.이 파이어 폭스의 현재 안정 버전에서 작동하지만 , 다른 버전을 테스트하지 않았습니다.
2.이 예제에서는 The ECMAScript Language Specification의 2015 버전에 도입 된 언어 기능을 사용합니다. 이러한 기능은 원하는 효과를 얻기 위해 필요하지는 않지만 코드를 읽기 쉽게 만듭니다. 구형 브라우저를 지원해야하는 경우 const 대신 var을 사용할 수 있으며 굵은 화살표 기능 대신 표준 기능을 사용할 수 있습니다. 기존의 답변은 귀하의 질문에 대답하지 않으면
3. 불행하게도-인해 샌드 박스 - 더이 예제에서는 작동하지 않습니다 스택 오버플로 미리보기 기능이 example on JSBin 대신

+0

Answer 우분투에서 firefox 브라우저가 작동하지 않습니다. 16.04 –

+0

@bobmarti 우분투에서 파이어 폭스에서 작동하지 않는 재현 가능한 예제를 포함시켜야합니다. 위의 예제는 우분투에서 파이어 폭스에서 실제로 작동하기 때문입니다. –