2014-02-26 214 views
0

我目前有以下腳本。但是,它總是顯示警告'test2'。有些事情是錯的,但我似乎無法弄清楚它是什麼。鉻擴展檢查失敗

inject.js

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

網站

<script> 
    var extended; 

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

也許之間的空間!並擴大你的if? – Cracker0dks

+0

@ Cracker0dks不,因爲即使沒有它,它總會給我test2作爲警報。 – user3290485

+0

是的,因爲你定義和檢查擴展,而不是window.extended ...刪除「VAR擴展」,並添加「window.extended」的if。 – 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