我正在使用chrome.tabs.query
来获取当前活动的网址,然后我想将它传递给我在firebase中的后端。在以下代码中:
function geturl() {
chrome.tabs.query({currentWindow: true, active: true}, function (tabs){
var tabURL = tabs[0].url;
document.getElementById("demo").innerHTML = tabURL; //The line I changed to pass the URL to html.
});
fbase.set({
title: tabURL, // If I set this to title: "test", it works
});
}
现在当我触发它时,没有任何反应,所以我检查并填写测试,这确实有效。这让我觉得Chrome不希望我这样做。我可以将该网址传递给我的popup.html
,该网址确实显示了该网址,但无法将其从popup.js
发送出去。是否有解决方法,或者我是否需要使用popup.html
?
干杯
答案 0 :(得分:1)
因为chrome.tabs.query
是异步的。
fbase.set
被调用,而chrome.tabs.query
未完成执行。
您必须将fbase.set
置于chrome.tabs.query
的回调中。
function getUrl() {
chrome.tabs.query({currentWindow: true, active: true}, function (tabs) {
var tabURL = tabs[0].url;
fbase.set({title: tabURL});
});
}