2014-02-26 1 views
0

현재 아래 스크립트가 있습니다. 그러나 항상 'test2'경고가 표시됩니다. 뭔가 잘못되었지만 그게 뭔지 알 수없는 것 같습니다.크롬 확장 검사 실패

inject.js

(function setExtended() { 
    window.extended = 1; 
}); 

웹 사이트

<script> 
    var extended; 

    function extension(){ 
     if (! extended){ 
      alert('test2'); 
     } else { 
      alert('test3'); 
     } 
    }; 
</script> 
+0

사이에 공백이있을 수 있습니다. 당신의 경우에 연장 되었습니까? – Cracker0dks

+0

@ Cracker0dks 아니요, 없어도 항상 test2를 알림으로 제공합니다. – user3290485

+0

예. 확장 및 아닌 window.extended 정의하고 검사하기 때문에 ... "var 확장"제거하고 if "window.extended"추가하십시오. – Cracker0dks

답변

0

사용하는 window 객체가 변수가 연결된 것과 같은 window 개체를 참조하지 않기 때문에이있을 수 있습니다. Chrome 확장 프로그램에는 자신의 window 변수가있는 배경 컨텍스트가 있으며 사용자가 현재 창/탭의 컨텍스트가 있습니다. 오른쪽 window 개체에 액세스하고 있는지 확인하십시오.

setExtended() 함수보다 먼저 extension() 함수가 호출되어 'test2'가 항상 표시 될 수도 있습니다. Chrome DevTools를 사용하고 올바른 순서로 호출되도록 중단 점을 설정합니다.

희망이 있습니다. 어떻게 진행되는지 알려주세요.

+0

글쎄, 나는 네가하는 말과 무슨 뜻인지 잘 이해하고있다. 그러나 'Chrome DevTools를 사용하고 중단 점을 설정하여 올바른 순서로 호출되는지 확인하십시오.'라는 의미를 모르겠습니다. – user3290485

+0

오케이 그래서 내 뜻은 이것이다. "웹 사이트"로 가서 시야의 아무 곳이나 오른쪽 클릭하고 "요소 검사"를 클릭하십시오. 그런 다음 "sources"탭으로 가서 ctrl-O를 눌러 관련 Javascript 파일을 엽니 다. Javascript 파일을 열었 으면 줄 번호를 클릭하여 "확장"기능과 "setExtended"기능에서 중단 점을 설정하십시오. 그런 다음 ctrl-R을 눌러 새로 고침하고 무엇이 먼저 호출되는지 봅니다. "콘솔"탭에서 오류가 발생했는지 여부도 표시됩니다. – supb