如何在Chrome扩展程序中将网页标记为已访问?

时间:2017-09-10 20:28:14

标签: google-chrome-extension

我想要做的是只有当活动选项卡突出显示时才在活动选项卡上执行该脚本,并且该脚本在该页面之前未执行。

  • 执行是突出显示选项卡的时间。
  • 除非刷新页面,否则页面只能执行一次。
  • 如果页面已刷新或标签的链接(位置)已更改,则我必须在下次突出显示标签时执行该脚本。

我在浏览互联网时基本上想要做的就是在页面窗口中存储一个变量并每次检查它。

起初我试过这个

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并在页面重新加载或“位置”更改时取消标记?

0 个答案:

没有答案