Firefox에서 event.srcElement를 어떻게 작동시킬 수 있으며 그 의미는 무엇입니까?
내 회사 웹 사이트에 하나의 웹 페이지를 firefox와 호환되지 않게 만드는 if 문이 있습니다.
if(event.srcElement.getAttribute("onclick") == null){
...code..
document.mainForm.submit();
}
나는 if 문 조건을 주석으로 처리했으며 이제 forefox와 함께 작동합니다. 제 질문은 event.srcElement.getAttribute ( "onclick")가 무엇인지, 그것이 중요한지, 그것이 미래에 문제를 일으킬 것인가입니다. 또한 파이어 폭스에서 작동하도록 조건을 대체 할 수있는 비슷한 것이 있습니까?
편집하다:
function gotoRDManagerPT(PTId, bDDetailId) {
if(!proceed()) return false;
var target = event.target || event.srcElement;
if(event.target.getAttribute("onclick") == null) {
document.mainForm.displayRDManagerPT.value = "true";
document.mainForm.PTId.value = PTId;
document.mainForm.bDDetailId.value = bDDetailId;
document.mainForm.submit();
}
}
srcElement
원래 IE에서 나온 독점 재산입니다. 표준화 된 속성은 target
다음과 같습니다.
var target = event.target || event.srcElement;
if(target.onclick == null) { // shorter than getAttribute('onclick')
//...
document.mainForm.submit();
}
또한 quirksmode.org- 더 많은 크로스 브라우저 정보에 대한 이벤트 속성 을 살펴보십시오 .
무엇을하고 있는지 질문에 관하여 :
event.target
/ 는 발생한 event.srcElement
요소에 대한 참조를 포함합니다 event
. getAttribute('onclick') == null
클릭 이벤트 핸들러가 인라인 이벤트 처리 를 통해 요소에 할당되었는지 확인합니다 .
그것은 중요한가? 무슨 ...code..
일이 일어나고 있는지 모르기 때문에 말할 수 없습니다 .
IE에서 이벤트 개체는 이미 창 개체에서 사용할 수 있습니다. Firefox에서는 이벤트 핸들러에서 매개 변수로 전달됩니다.
예
자바 스크립트 :
function toDoOnKeyDown(evt)
{
//if window.event is equivalent as if thie browser is IE then the event object is in window
//object and if the browser is FireFox then use the Argument evt
var myEvent = ((window.event)?(event):(evt));
//get the Element which this event is all about
var Element = ((window.event)?(event.srcElement):(evt.currentTarget));
//To Do -->
}
HTML :
<input type="text" id="txt_Name" onkeydown="toDoOnKeyDown(event);"/>
html 내부에서 함수를 호출했을 때 알다시피 event
브라우저가 Firefox 인 경우를 대비하여 매개 변수를 추가했습니다 .
IE의 이벤트 개체가 호출 window.event
되고 Firefox에서는 매개 변수로 넣어야한다는 기사를 읽었습니다 .
코드에 첨부해야하는 경우 :
document.getElementById('txt_Name').onkeydown = function(evt) {
var myEvent = ((window.event)?(window.event):(evt));
// get the Element which this event is all about
var Element = ((window.event)?(event.srcElement):(evt.currentTarget));
// To Do -->
};
다음과 같이 빠른 수정을 시도하십시오.
코드에 포함 :
let target = event.target || event.srcElement;
그리고 변경
event.srcElement.XXXXX to target.XXXXX
this solves the issue with Firefox.
'program story' 카테고리의 다른 글
PHP에서 문자열 끝에있는 특정 문자를 모두 제거하려면 어떻게해야합니까? (0) | 2020.10.07 |
---|---|
mysql의 max (length (field)) (0) | 2020.10.07 |
여러 어셈블리를 하나로 병합하는 방법은 무엇입니까? (0) | 2020.10.07 |
2xx 이외의 코드가 반환 될 때 HttpURLConnection을 사용하여 응답 본문을 얻는 방법은 무엇입니까? (0) | 2020.10.07 |
Emacs에서 XML 파일 인쇄하기 (0) | 2020.10.06 |