내가 말한다 일부 자바 스크립트가 있다고 가정window.onunload에 더 많은 함수를 추가하는 방법은 무엇입니까?
window.onunload=some_jsfunction();
가 어떻게이 핸들러에 다른 기능을 추가 할 수 있습니다 ? 이 같은 :
window.onunload=some_jsfunction() + another_jsfunction();
내가 말한다 일부 자바 스크립트가 있다고 가정window.onunload에 더 많은 함수를 추가하는 방법은 무엇입니까?
window.onunload=some_jsfunction();
가 어떻게이 핸들러에 다른 기능을 추가 할 수 있습니다 ? 이 같은 :
window.onunload=some_jsfunction() + another_jsfunction();
최우선 방법 : addEventListener
:
window.addEventListener('unload', function() { /* Do things. */ });
window.addEventListener('unload', function() { /* Do other things. */ });
그것도에서 기존 처리기에 대한 호출로 새로운 이벤트 처리기를 만드는 또 다른 방법으로, 다음 덮어 이전 핸들러. 나는 DOM 이벤트로 유용하게 사용될 수있는 상황을 상상하지만, 수 없습니다
var onUnload = function() {
/* Do things. */
};
var oldOnUnload = onUnload;
onUnload = function() {
oldOnUnload();
/* Do new things. */
};
가장 진보 된 방법은 DOM의 관찰자의 상단에 자신의 관찰자를 만드는 것입니다 (이 Mootools의 같은 프레임 워크 무엇을 할 내부적으로). 장기적으로 도움이 될 수 있습니다. 예를 들어 이벤트 네임 스페이스를 추가 할 수 있습니다.
var handlers = [];
window.onunload = function() {
handlers.forEach(function (fn) { fn(); });
};
handlers.push(function() { /* Do things. */ });
handlers.push(function() { /* Do other things. */ });
내 의견에 따르면, 경험에 기반 : 브라우저 불일치를 처리 할 수 있다면 addEventListener 만 사용하십시오. 여기에 나열된 두 번째 해결 방법은 이벤트를 함께 추가하는 유용한 방법이지만 이전 버전을 재 할당하지 않으면 제거 할 수 없습니다. 부수적으로, 이벤트가 문서의 특정 요소에 첨부되어 있다면'node.setAttribute ("onClick", node.getAttribute ("onClick") + newcode);'를 사용할 수 있습니다. –
jQuery 라이브러리는 콜백 목록에 넣어 문서 준비 함수에 대한 접근 방식의 이벤트 리스너를 사용하고 준비 이벤트가 발생할 때 기능이 호출됩니다. 문제의 경우 이것은 내가 그 내장과 같은 메커니즘을 가지고 있기 때문에 jQuery를 같은 프레임 워크의 일종을 사용하는 것이 좋습니다 것입니다 일반적으로이
onunloadList = new Array();
function addOnUnloadHandler(fn) {
// Add the callback
onunloadList.push(fn);
}
function handleOnUnloadHandlers(fn) {
for (i=0;i<onunloadList.length;i++) {
var fn = onunloadList[i];
fn();
}
}
window.onunload = handleOnUnloadHandlers();
처럼 어떻게 든 구현 될 수있다. 그리고 코드는 당신이 필요 없어 쓸 돈 유지하다.
window.onunload
에서 함수를 호출하고 해당 함수에서 함수를 호출하십시오. 이
window.onunload = callFunctions;
같은 일부 것은 당신의 callFunctions는 .bind 사용에 대한
function callFunctions() {
someFunction();
anotherFunction();
}
downvote에 대한 이유가 있습니까? 나는 정말로 알고 싶어 하느냐? –
어떤 형태 동안? http://api.jquery.com/bind/ –
죄송합니다. mootools를 사용하는 것을 잊어 버렸습니다. – user603007
http://mootools.net/docs/core/Element/Element.Event#Element:addEvent. – katspaugh