2014-02-26 257 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