我目前有以下脚本。但是,它始终显示警报'test2'。有些事情是错的,但我似乎无法弄清楚它是什么。
inject.js
(function setExtended() {
window.extended = 1;
});
网站
<script>
var extended;
function extension(){
if (! extended){
alert('test2');
} else {
alert('test3');
}
};
</script>
答案 0 :(得分:0)
这可能是因为您使用的window
对象未引用该变量所附加的同一window
对象。在Chrome扩展程序中,背景上下文中包含自己的window
变量,并且您有当前窗口/选项卡的上下文。确保您正在访问正确的window
对象。
也可能在extension()
函数之前调用setExtended()
函数,在这种情况下它将始终警告'test2'。使用Chrome DevTools并设置断点以确保以正确的顺序调用它们。
答案 1 :(得分:0)
页面的JavaScript上下文和content_script是分开的,不共享变量/函数/ etc。您应该使用chrome.runtime.sendMessage作为described here。