2013-04-22 48 views
1

Im使用chrome.contextMenus documentUrlPatterns來過濾顯示上下文菜單的位置。chrome.contextMenus排除網址?

我試圖預謀「 - 」的模式,但,這並不能改變什麼......

function recreateStuff(){ 
     if(logoncmid!=-1){} 
     var hosts=[]; 
     var ihosts=[]; 
     for (var i = savedData.length - 1; i >= 0; i--) { 
      hosts.push(savedData[i].host); 
      ihosts.push("-"+savedData[i].host); 
      //console.log(savedData[i]); 
     }; 
     // hosts created ... 
     chrome.contextMenus.update(logoncmid,{documentUrlPatterns: hosts}); 
     chrome.contextMenus.update(regcmid,{documentUrlPatterns: ihosts}); 


} 

是否有可能使排除列表?

回答

1

黑客怎麼樣? :)

var windowTopTab=[]; 
var curWin = 1; 
var curUrl = ""; 

function fetchCurUrl(){ 
    if(!windowTopTab[curWin]) return; 
    chrome.tabs.get(windowTopTab[curWin], function(tab){ 
    curUrl = url; 
    }); 
} 

chrome.tabs.onActivated.addListener(function(activeInfo) { windowTopTab[activeInfo.windowId]=activeInfo.tabId; fetchCurUrl(); recreateStuff(); }); 
chrome.windows.onFocusChanged.addListener(function(windowId) { curWin = windowId; fetchCurUrl(); recreateStuff(); }); 
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { if(windowTopTab[curWin]) if(windowTopTab[curWin]==tabId){ fetchCurUrl(); recreateStuff(); } }); 

var contextm = chrome.contextMenus.create({"title": "* Fill RegForm", "contexts":["editable"], 
               "onclick": genericOnClick}); 

function recreateStuff(){ 
     var curHN = getHostname(curUrl); 
     var reg = true; 
     for (var i = savedData.length - 1; i >= 0; i--) { 
      if(savedData[i].host==curHN) reg=false; 
     }; 

     if(reg){ 

     chrome.contextMenus.update(contextm, {"title": "* RegForm", "onclick": genericOnClick}); 
     }else{ 

      chrome.contextMenus.update(contextm, {"title": "* LoginForm", "onclick": genericOnClick2}); 
     } 
}