2011-08-28 2 views
1

인식하기 : 그것은 크롬에서 잘 작동하지만Esc 키되지는이 스크립트가 파이어 폭스에서 작동하지 않는 몇 가지 이유를 들어 파이어 폭스

document.onkeydown=function keypress(e) { 
    if (e.keyCode == 27) { 
     window.location = "/edit" 
    }; 
}; 

어떤 이유로 파이어 폭스에서 작동하지 않습니다.

기본적으로 이스케이프 키를 누를 때 /edit 페이지가로드됩니다.

+0

나를 위해 FF5에서 작동합니다 : http://jsfiddle.net/Tm2PZ/ – Mrchief

+0

'console.log (e)'실행 중입니다. 출력이 발생하는지 확인하십시오. – Trevor

답변

6

사용 :

document.onkeydown=function keypress(e) { 
    e=(e||window.event); 
    if (e.keyCode == 27) { 
     try{e.preventDefault();}//Non-IE 
     catch(x){e.returnValue=false;}//IE 
     window.location = "/edit"; 
    }; 
} 

ESC의 기본 액션은 페이지로드를 중지하는 것입니다은
은 그래서 당신은 그렇지 않으면 당신은 위치를 변경할 수 없습니다,이 동작을 방지해야합니다.

바이올린 : http://jsfiddle.net/doktormolle/CsqgE/

(첫번째 ESC를 사용하기 전에 결과 프레임에 클릭)하지만, 그러나, 당신이 정말로 다른 키를 사용해야합니다.
사용자는 ESC을 사용하면 현재 페이지로드가 멈출 것으로 예상합니다.

+0

아. 나는 그 키보드 단축키에 대해 몰랐다. SquareSpace가 사용한다는 것을 알고 있기 때문에 Escape를 선택했습니다. 다른 키를 찾아야합니다. – JacobTheDev

0

이벤트 핸들러는 나를 위해 노력하고 있습니다 : http://jsfiddle.net/Tm2PZ/

난 당신이 설정하고있는 lcoation이 유효하지 않습니다 생각한다.

대신 window.location.href으로 설정해보십시오.

+0

@Murchief : 틀렸어. –

+0

@ Dr.Molle : 당신과 동의하십시오. 내 의견을 삭제했습니다. – Mrchief

+0

@Dmitriy : 여기서 뭐가 잘못 되었나요? – Mrchief

관련 문제