2015-04-22 60 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