我想要做的是只有当活动选项卡突出显示时才在活动选项卡上执行该脚本,并且该脚本在该页面之前未执行。
我在浏览互联网时基本上想要做的就是在页面窗口中存储一个变量并每次检查它。
起初我试过这个
chrome.tabs.onHighlighted.addListener(function(){
var query = { active: true, currentWindow: true };
chrome.tabs.query(query, function(tabs) {
chrome.windows.get(tabs[0].windowId, function(window){
if(!window.fbaVisitedPage){
window.fbaVisitedPage=true;
//execute script here only once per page.
}
});
});
});
但它不起作用,所以我尝试使用默认的window
变量
chrome.tabs.onHighlighted.addListener(function(){
var query = { active: true, currentWindow: true };
chrome.tabs.query(query, function(tabs) {
chrome.windows.get(tabs[0].windowId, function(win){//change is here
if(!window.fbaVisitedPage){
window.fbaVisitedPage=true;
//execute script here only once per page.
}
});
});
});
第二个代码中的问题是,即使在刷新页面后,仍然定义了变量window.fbaVisitedPage
。我希望在刷新页面后变量window.fbaVisitedPage
变为未定义,但是没有发生。
我该如何解决这个问题?如何将页面标记为visited
并在页面重新加载或“位置”更改时取消标记?