4

페이스 북에서 브라우저 확장 기능을 사용하고 있습니다. 이제는 페이스 북에서 setTimeout & setInterval 네이티브 함수를 재정의하고 Internet Explorer에서 해당 구현이 작동하지 않습니다.setTimeout 네이티브 메서드 구현

이러한 기능을 구현할 수있는 방법이 있습니까?

당신은 iframe이를 만든 다음이 window 개체의 액세스, 신선한 setTimeout 정의를 확보하고 글로벌 네임 스페이스의 하나 덮어 쓸 수
+0

그들은 그들에게 무엇을 했습니까? IE에서 작동하지 않는 이유는 무엇입니까? IE 없이도 앱을 작성할 수 있다고 생각하지 않습니다. – Bergi

+0

나는 그들이 어떤 식 으로든 그들을 호출하는 것, 그들은 크롬과 파이어 폭스와 사파리에 대한 나를 위해 일을 할 유일한 IE는 거기 코드와 함께 처리하지 않는 것 같아요. –

+0

브라우저 확장 프로그램 인 경우 Facebook 스크립트가로드되기 전에 메서드를 catch 할 수 있습니다. 예 :'var myTimeout = setTimeout; ' – ColBeseder

답변

5

:이 작동하지만

var f = document.createElement('iframe'); 
document.body.appendChild(f); 
window.setTimeout = f.contentWindow.setTimeout; 
document.body.removeChild(f); 

, 그것은 아마도이 스크립트에 대한 좋은 ideea의 아니다 서로의 변수를 덮어 쓰기 시작합니다. FB로 setTimeout 함수을 제어 할 수있게하고 새 복사본을 사용하지만 다시 덮어 쓰지 않도록하십시오 (로컬 변수 또는 다른 이름을 가진 전역 변수에 저장할 수 있음).

+0

IE9 jquery에서 contents()를 사용하여 contentWindow 속성에 액세스하려고 할 때 액세스가 거부되었습니다. jquery에서 문서를 반환하고 window 객체는 반환하지 않습니다. –