2015-01-05 2 views
0

크롬 확장을 통해 particular website에서 일부 코드를 실행하고 있습니다. 내 코드는 사이트의 특정 페이지에서만 실행되도록되어 있습니다. 특정 페이지에만 pageAction.show를 호출하고 특정 페이지에만 내용 스크립트를 호출하는 것을 포함합니다.프레임 변경을 감지하거나 프레임 재로드시 콘텐트 스크립트를 다시 실행 하시겠습니까?

페이지에 직접 링크하면 모든 것이 정상적으로 작동합니다. 그러나 다른 페이지를 통해 내 스크립트가 실행되어야하고 pageAction.show가 실행되어야하는 페이지로 이동하는 경우 - 그렇지 않습니다. 나는 이것이 사이트 네비게이션 내에서 페이지가로드되는 방법과 관련이 있다고 생각한다. 다시로드/새로 고침을 감지하고 내 스크립트를 강제로 실행하는 방법이 있는지 궁금합니다. 그렇지 않으면 모범 사례는 여기에 감사하겠습니다. 감사!

편집 : 나는 그것이 iFrame이라고 생각하지 않습니다. 나는 "프레임"이 올바른 단어인지 확실하지 않습니다. 웹 사이트에는 ... 매우 동적 인로드 방법이 있습니까? 적절한 용어가 무엇인지는 확실치 않지만, 그것이 무엇이든간에, 그것은 내 코드 bigtime에서 망할 것입니다.

편집 2 : 예상치 못한 (나에게) 행동이 발생합니다. 콘텐츠 스크립트가이 (pastebin.com/c7m3wXcf) 코드로로드되면 아무 일도 일어나지 않습니다. 그러나 새로 고침하고 주변을 탐색하면 시작됩니다. 그러나 처음으로 그렇게하는 것을 거부합니다. 아마도 내가 여기서 빠뜨린 중요한 것이있을 것입니다. 당신은 돌연변이 관찰자에 갈 수

답변

1

:

이 코드는 DOM 트리를 관찰하고 DOM 노드의 생성/삭제 등의 변경이있는 경우,이 코드를 실행하는 일
// select the target node 
var target = document.documentElement; 

// create an observer instance 
var observer = new MutationObserver(function(mutations) { 
    mutations.forEach(function(mutation) { 
     // put your code here "pageAction.show" 
    }); 
}); 

// configuration of the observer: 
var config = { attributes: true, childList: true, characterData: true } 

// pass in the target node, as well as the observer options 
observer.observe(target, config); 

// later, you can stop observing 
observer.disconnect(); 

.

+0

나는 그것이 iFrame이라고 생각하지 않습니다. 나는 "프레임"이 올바른 단어인지 확실하지 않습니다. 웹 사이트에는 ... 매우 동적 인로드 방법이 있습니까? 적절한 용어가 무엇인지 확실하지 않습니다. – Thirk

+0

dom 트리에서 변경된 사항이 있는지 확인하고 싶습니다. – Jai

+0

예상치 못한 (나에게) 행동을 경험합니다. 콘텐츠 스크립트가이 (http://pastebin.com/c7m3wXcf) 코드와 함께로드되면 아무 일도 발생하지 않습니다. 그러나 새로 고침하고 주변을 탐색하면 시작됩니다. 그러나 처음으로 그렇게하는 것을 거부합니다. 아마도 내가 여기서 빠뜨린 중요한 것이있을 것입니다. – Thirk