2012-10-31 3 views
0

HTML5 및 JavaScript를 사용하여 비디오 인터페이스 웹을 만들고 있습니다.Chrome 및 Opera에서 JavaScript 키 후킹 문제가 발생했습니다.

키를 사용하여 비디오를 제어해야하므로 JavaScript에서 문제가 발생합니다. 예를 들어 'P'와 같이 키보드에서 키를 누르면 비디오가 '재생'또는 '일시 중지'상태가됩니다. 문제는 크롬과 오페라에서는 작동하지 않지만 파이어 폭스에서는 작동한다는 것입니다.

발췌 아래의 전체 코드의 일부입니다 :

html로 :

<video width="775" id="player" preload controls timeupdate="timeupdate()" onclick="repro()" onMouseOver="mostrarControles()" onMouseOut="ocultarControles()"> 
    <source src="video.mp4" type="video/mp4" /> 
    <source src="video.theora.ogv" type="video/ogg" /> 
    <source src="video.webmvp8.webm" type="video/webm" /> 
    TU NAVEGADOR NO SOPORTA VIDEO EN HTML5. 
</video> 
<div id="controls" onMouseOut="ocultarControles()" onMouseOver="mostrarControles()" > 
    <!-- Buttons of control--> 
</div> 

Java.JS - 내가 크롬과 오페라에 문제가 기능 :

document.getElementById("controls").addEventListener('keydown',function(event) { 
    controlTeclado(event); 
    //alert("OK"); 
}, true); 

내가 가진를 Chrome과 Opera가 .addEventListener() 내부에서 액세스하지 못하는 것을 감지했는데 이유가 무엇인지 모르겠습니다.

ProgressBar.JS:

function controlTeclado(evento) { 
    mostrarControles(); // show controls on the web page 
    if (evento.keyCode==80) { 
     alert(" Key: "+evento.keyCode); 
     repro(); //play video 
    } 
} 
+0

는 콘솔에 오류 메시지를받을 수 있나요? 그렇다면 무엇을 말할까요? – ColBeseder

+0

Javascript는 크롬과 오페라에서 잘 작동하므로 제목을 편집했습니다. – Wug

+0

@ColBeseder, 콘솔에 오류 메시지가 나타나지 않고 키를 가져 오지 않습니다. – maceguo

답변

0

<div> 요소는 기본적으로 키 이벤트를 수신하지 않습니다. 양식 입력 및 contenteditable 요소와 같은 focusable 요소 만 않습니다. 확인하려면 정기적으로 그것을 할당 키 이벤트를 해고 할 수 <div>tabIndex (0의 값이 요소는 일반 탭 순서에 있음을 의미) :

<div id="controls" tabindex="0" 
     onMouseOut="ocultarControles()" onMouseOver="mostrarControles()"> 
    ... 
</div> 
+0

나는 그 옵션으로 시도했지만 크롬과 파이어 폭스에서 제대로 작동하지 않는다. 나는 플레이어에게 키를 집중시키는 또 다른 호출을 가지고있다. 'document.getElementById를 ("플레이어") 또는 addEventListener. ('초점 '함수 (이벤트) { \t \t \t controlTeclado (이벤트) \t \t}에 해당); ' – maceguo

+0

@maceguo : 작동합니다. http://jsfiddle.net/aTgxa/를 참조하십시오. –

+0

관련 문제