각 웹 페이지에 대한 최신 데이터를 수집하기 위해 팝업 창을보기 전에 내 Chrome 확장 프로그램이 열려있는 모든 탭에 대한 내용 스크립트를 다시 실행하기를 원합니다 (배경 페이지로 메시지를 보냅니다). 내 문제는 각 iframe에 대한 전체 액세스 권한을 얻으려면 allframes를 true로 설정해야한다는 것입니다. 즉, 팝업 창을 표시하기 전에 각 프레임에서 메시지를 수신 할 때까지 기다려야합니다.모든 프레임이 Chrome 확장 프로그램의 contentscript에서 응답을 반환했음을 감지합니까?
내 문제는 얼마나 많은 프레임이 있는지 결정하는 방법을 잘 모르겠다는 것입니다. 필자가 살펴본 한 가지 접근법은 contentscript에서 프레임 수를 감지하는 것이지만, 지금 바로 요청할 수 없다는 것을 나타내는 열린 버그가 있습니다. 또 다른 방법은 그냥 페이지로 이동했을 때 얻은 것과 동일한 응답을 기다리는 것입니다.하지만 AJAX 호출로 인해 프레임 수가 증가 할 가능성이 있습니다. 마지막으로 chrome.extension.SendRequest에 대한 응답에 이러한 정보가 포함되기를 기대했지만 그렇지 않습니다.
귀하의 도움에 감사드립니다.
제안 해 주셔서 감사합니다. 목차와 배경 페이지 간의 통신을 개선하기 위해 포트를 사용하는 방법을 살펴 보겠습니다. 그러나, 나는 여전히 contentscript가 항상 새로운 프레임을 위해 실행되지는 않는다는 문제가 있습니다. (http://www.reddit.com/r/videos에서 괜찮습니다. 그러나 Facebook 비디오에서는 작동하지 않습니다.) –
실제로 문제는 페이스 북에 포함 된 모든 비디오 (페이스 북 비디오에만 국한된 것은 아닙니다)와 같습니다. 기회가 생겼을 때 소스를보고 iframe이 각 사이트에 삽입 된 방식을 비교합니다 (예상되는 동작은 contentscript가 생성 될 때 새로운 iframe에서 실행되어야한다는 경우 버그가 될 수 있음) –
콘텐츠 스크립트 단순히 console.log ('injected!')를 수행하고 개발자 콘솔을 사용하여 iframe을 추가하고 탐색 할 때마다 콘텐츠 스크립트가 실행됩니다. 나는 당신이 그것을 이해하기를 바랍니다. – yonran