2012-07-22 6 views
1

새로운 Google 인스턴트 페이지가 제공 될 때 전화를 걸고 결과를 수정해야하는 브라우저 확장 프로그램에서 작업하고 있습니다 (SEOQuake).새로운 Google 순간 검색 페이지가 표시되는 것을 감지하는 방법은 무엇입니까?

문제 : 사용자가 링크를 URL 입력란에 직접 붙여 넣은 다음 Enter 키를 누르면 새 페이지가로드되고 내 확장 프로그램이 실행됩니다. 그러나 Google 순간 검색을 사용하면 검색어를 입력 할 때 URL이 변경 되더라도 기술적으로 같은 페이지에 있으므로 확장 프로그램이 실행되지 않습니다.

나는 SEOQuake의 코드를 보면서 이것은 그들이 문제를 해결하는 방법이 될 것 같다 :

document.body.addEventListener("DOMNodeInserted", sq_bindAsEventListener(this, function(event) { // 

을 그것은 내가 아는 한, DomNodeInserted 아니기 때문에 훌륭한 솔루션은, 그러나 그것은 나에게 적합하지 않습니다이다 (놀라운!)

나는 모든 jQuery 함수에 액세스 할 수 있도록 응용 프로그램과 함께 jQuery를 번들로 제공하고 있습니다. 내가 .keypress()을 사용하는 것에 대해 생각하고 잠시 동안 입력이 없어 질 때까지 기다리십시오. Google 인스턴트라면 페이지가 변경되었다는 사실을 알게 될 것입니다.

또 다른 생각은 URL이 변경되었는지 모니터링하는 것입니다. url이 변경된 경우 추적 할 jquery 또는 javascript 함수를 찾을 수없는 것 같습니다.

Google 인스턴트 검색이 수행되었음을 알 수있는 가장 좋은 방법은 무엇입니까?

답변

0

조잡한 해결책 : setInterval()을 사용하고 window.top의 위치가 변경되는지 (즉, 새 쿼리가 수행되었음을 의미) 확인하십시오.

0

해시 변경을 듣는 것이 좋습니다.

이전 IE (< 8 ??)는 이벤트를 제공하지 않으므로 여기에 타이머가 필요할 수 있습니다. 이 모든 문제는 IE7에서 즉시 사용할 수 있습니다. 물론 어쨌든 의심 스럽습니다.