【发布时间】:2013-06-18 02:02:15
【问题描述】:
我创建了一个由 manifest.json、content.js 和 background.js 组成的 chrome 扩展。在 content.js 中,我正在提取当前选项卡的 URL,在 background.js 中,我正在打开一个新选项卡。我想要做的是从内容中传递 URL 并将其附加到我在后台调用的 URL 中,这是行不通的。
content.js:
chrome.extension.onMessage.addListener(function(request, sender, sendResponse)
{
if(request.greeting=="gimmieyodatas")
{
var output ="URL=";
//check for the character '?' for any parameters in the URL
var paramIndex = document.URL.indexOf("?");
//if found, eliminate the parameters in the URL
if (paramIndex > -1)
{
output += document.URL.substring(0, paramIndex);
};
sendResponse({data: output});
}
else{
sendResponse({});
}
});
background.js:
var output2;
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, {greeting:"gimmieyodatas"}, function(response) {
output2 = response.data;
});
});
chrome.browserAction.onClicked.addListener(function() {
chrome.tabs.create({url: "http://www.google.com?" + output2}, function(tab) {
chrome.tabs.executeScript(tab.id, {file: "content.js"}, function() {
sendMessage();
});
});
});
当我从打开的选项卡运行扩展程序时,它会在新选项卡上打开 google,但它不会在 google URL 中附加当前选项卡的 URL,这意味着“输出”数据不会传递给 background.js .我做错了什么?
【问题讨论】:
标签: javascript json google-chrome-extension