>  기사  >  웹 프론트엔드  >  Javascript는 IE/Firefox_javascript 기술과 호환되는 클릭 이벤트(링크 클릭 및 html 클릭)를 시뮬레이션합니다.

Javascript는 IE/Firefox_javascript 기술과 호환되는 클릭 이벤트(링크 클릭 및 html 클릭)를 시뮬레이션합니다.

WBOY
WBOY원래의
2016-05-16 18:37:251927검색

한 상황에서 클릭을 시뮬레이션하는 데는 일반적으로 하이퍼링크 이벤트에 대한 클릭을 시뮬레이션하는 두 가지 측면이 있습니다.
firefox의 호환 기능은
HTMLAnchorElement에 onclick 이벤트 추가

코드 복사 코드는 다음과 같습니다.
try {
// HTMLAnchorElement에 액세스할 수 있도록 요소를 만듭니다.
document.createElement('a');
HTMLElement.prototype.click = function () {
if (typeof this.onclick == 'function') {
if (this.onclick({ 유형: '클릭'}) && this.href)
window.open(this.href, this.target? this.target : '_self')
else if (this.href);
window .open(this.href, this.target? this.target : '_self')
}
}
catch(e) {
//alert('click) HTMLAnchorElement 메소드를 추가할 수 없습니다.');
}


다음은 특정 애플리케이션입니다



[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다. ]
일반적인 HTML 추가입니다. FireFox의 HTMLElement에 클릭 방식을 적용하려면
을 클릭하세요(Mozilla에서는 HTMLElement에 클릭 방식을 추가하세요).

코드 복사 코드는 다음과 같습니다.
try {
// HTMLElement에 액세스할 수 있도록 스팬 요소를 만듭니다.
document.createElement('span')
HTMLElement. 프로토타입.click = function () {
if (typeof this.onclick == 'function')
this.onclick({type: 'click'})
}
catch (e) {
// Alert('HTMLElement의 클릭 방법을 추가할 수 없습니다');
}


다음은 네티즌이 게시한 기타 관련 기사입니다. 도 참조하세요.
최근에 작업을 하다가 웹페이지의 입력창에서 Enter를 누르는 사용자의 동작이 수정되지 않는 것을 발견했습니다. . .
특히 웹 페이지에 여러 형태가 있는 경우
그래서 검색해 보니 클릭을 시뮬레이션하는 js가 있어서 테스트해보니 Firefox와 IE에서 실행이 됩니다.


function doClick(linkId, e){
if(e.keyCode != 13){
return;
}
var fireOnThis = document.getElementById(linkId)
if (document.createEvent)
{
var evObj = document.createEvent('MouseEvents')
evObj. initEvent( 'click', true, false )
fireOnThis.dispatchEvent(evObj)
}
else if (document.createEventObject)
{
fireOnThis.fireEvent('onclick')
}
}


여기서 e는 내장 객체인 이벤트이고 linkId는 클릭을 시뮬레이션하는 객체 ID입니다.
예:
이 경우 사용자는 Enter를 눌러 양식을 제출할 수 있습니다~
opera는 다시 변경할 수 있습니다


나를 클릭하세요