백그라운드 이벤트를 실행하려면 비밀번호를 입력하고 Enter를 눌러야 합니다. 매우 간단한 요구사항인 것 같지만 많은 문제에 직면합니다.
HTML 콘텐츠에는 주로 비밀번호 입력 텍스트 상자와 배경 이벤트를 실행하는 버튼이 포함되어 있습니다.
1. TextBox 텍스트 상자에 초점이 맞춰진 후 Enter 키를 누르면 페이지가 새로 고쳐집니다.
코드를 주의 깊게 연구한 결과 페이지에 텍스트 상자 컨트롤이 하나만 있는 경우 Enter 키를 누르면 페이지가 새로 고쳐지는 것으로 나타났습니다.
해결 방법: 숨겨진 TextBox 컨트롤을 페이지에 추가하십시오.
구체적인 원리는 알려져 있지 않습니다!
2. Jquery를 사용하여 메서드를 구현합니다.
$(document).ready(function(){ $("#tbPassword").focus(); $('#bPassword').keydown(function(e){ if(e.keyCode == 13){ $("#ctl00_ContentBody_btnAccept_linkButton")[0].click(); } }); });
3. 여러 가지 이유로 Jquery 구현 방식을 사용할 수 없어서 대신 JS를 사용해야 하는 것이 가장 문제입니다.
document.getElementByIdx_x_x("tbPassword").onkeypress = function(event){ var keynum; if(window.event) // IE { keynum = window.event.keyCode; } else if(event.which) // Netscape/Firefox/Opera { keynum = event.which; } if (keynum == 13) document.getElementByIdx_x_x('ctl00_ContentBody_btnAccept_linkButton').click(); }
설명:
IE에서 키보드 키 읽기:
keynum = event.keyCode; // 字母d,keynum=100 keychar = String.fromCharCode(keynum); // 将keynum转换成字符d
FireFox에서 키보드 키 읽기:
keynum = event.which; // 字母d,keynum=100 keychar = String.fromCharCode(keynum); // 将keynum转换成字符d
예를 들어 IE에는 keyCode 속성만 있고, FireFox에는 which와 charCode 속성이 있고, Opera에는 keyCode와 which 속성 등이 있습니다.
따라서 이 호환성 문제는 Jquery에서 해결되었습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.