2013-01-14 3 views
1

내 웹 사이트에서 Chrome 확장 프로그램이 설치되어 있는지 여부를 감지하고 싶습니다. 보통 사람이 내가 실행 자바 스크립트 웹 사이트 전에 확장을 감지 할, 그러나 일부

<div id="extensionExists"></div>. 

를 만들려면 사용자 정의 스크립트를 사용합니다. 이미지가 완전히로드 될 때까지 기다리지 않으려면 window.onload() 대신 document.ready()를 사용하고 있습니다. 그러나 div를 미리 만들지 못했습니다. 내 콘텐츠 스크립트에서 run_at : "document start"를 사용하는 경우 div를 아직 만들 수 없습니다. "문서 종료"를 사용하는 경우 너무 늦기 때문에 document.ready()가 이미 실행되었습니다.

아이디어가 있으십니까?

답변

0

Mhh ... 내가 아는 한 깨끗한 해결책이 없습니다. 내 유일한 생각은 ... 완전히로드 된하지만 제대로 지금 그것을 테스트 할 시간이 없어 전에 문서에 액세스 할 MutationObserver을 사용하는 것입니다

var obs = new WebKitMutationObserver(function (mutations) { 
    console.log(mutations); 
    mutations.forEach(function (mutation) { 
    var newNodes = mutation.addedNodes; 
    console.log(newNodes); 
    // newNodes should now contain a NodeList which contains all nodes that were created right now 
    // you should be able to create your element now 
    // consider using obs.disconnect(); after you have found your entry point. 
    }); 
}); 

obs.observe(document, { childList: true }); 

는 아무것도 할 것이다 보장. jsFiddle은 문서 앞에 스크립트를 추가 할 수 없기 때문에 거기에서도 테스트 할 수 없습니다.

+0

슬프게도 아무 것도하지 않습니다. 내 길은 이제 확장에서 웹 페이지의 수정 된 사본 으로 리디렉션하는 것입니다. 최고이지만 작동하지 않는 것은 최악의 경우는 확장 프로그램의 페이지에 검색 주소창에 경로가 없다는 것입니다. (확장명 : main.html과 같은 이름도 아닙니다) – user1977711

관련 문제