2015-04-22 80 views
0

我在Chrome中添加了一個conext菜單,點擊後可以使用chrome.tabs.create打開一個Wufoo窗體。我需要用戶以wufoo格式完成的一個字段是當前選項卡的URL。所以我可以簡單地將我的var a添加到url,並且應該添加它。如果var a只是一些文本,但是當我嘗試添加當前選項卡URL「undefined」被添加到url時,這將起作用。我的錯誤是什麼?如何獲取要添加的標籤網址?如何將當前標籤網址添加到chrome.tabs.create url

這裏是JavaScript

chrome.contextMenus.onClicked.addListener(function(info, tabs){ 
var a = chrome.tabs.query({'active': true, 'windowId':chrome.windows.WINDOW_ID_CURRENT}, 
function(tabs){ 
    return(tabs[0].url); 
} 
); 
    if (info.menuItemId === 'Add a Link') 
      chrome.tabs.create({url: "https://ownthistown.wufoo.com/forms/m3u64zc05w2a0a/def/field10=" + a }); 

回答

0

不能使用返回變量從這樣一個內部函數。你將不得不這樣做

chrome.contextMenus.onClicked.addListener(function(info, tabs){ 
    chrome.tabs.query({'active': true}, function (tabs) { 
     if(info.menuItemId === 'Add a Link') 
     chrome.tabs.create({url: "https://ownthistown.wufoo.com/forms/m3u64zc05w2a0a/def/field10=" + tabs[0].url }); 
    }); 
}); 
+0

那工作。如果我能夠從網頁和URL名稱(或標題,不知道它的名稱)中添加選定的文本,我怎麼能在這個函數中做到這一點? – JoeR

+0

'info.selectionText'可以訪問突出顯示的文本,'if(info.menuItemId ==「contextselection」)'將確保在顯示contextmenu時選擇了一些文本 – Dhiraj