(ITERATION 2来自此部分。请滚动下一个位) 我正在尝试构建一个可以获取youtube页面(即activeTab)的URL的扩展,然后找到另一个标题为“Village”的选项卡,抓取该DOM中的元素,并粘贴该链接。
我似乎无法使用非活动标签中的chrome.tabs.query({'title:})
或我的getElementById
。
有人可以称重吗?
console.log('popupjs loads')
//get current URL of youtube or soundcloud
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
currentURL = tabs[0].url;
console.log(currentURL);
//finds tab with village
chrome.tabs.query({'title': 'Village'}, function(findVillage){
//if there is a tab
//if there is a current user
//get link
var myElement = document.getElementById("post-link");
//create text with url of youtube or soundcloud
var textnode = document.createTextNode(currentURL);
//paste link
myElement.append(textnode); <--- error happens here
//press submit button
//else
//message error
});
});
这是错误
Error in response to tabs.query: TypeError: Cannot read property 'append' of null
at null.callback (chrome-extension://knmmfcephkakihklkejdofcijfpjgmmf/popping.js:17:14)
at null.callback (chrome-extension://knmmfcephkakihklkejdofcijfpjgmmf/popping.js:9:15)
我知道它说myElement没有对象。我觉得Chrome标签查询“标题”
时出现问题谢谢!
---------- ITERATION 2 -------------------- 我查看了评论中建议的链接,但是,我没有遇到同样的问题。我根本没有解释得很好。
我尽可能地重构了代码,试图让它更清晰
popup.js
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
currentURL = tabs[0].url;
console.log(currentURL);
//iterate through tabs
for (i=0; i <= chrome.tabs.length; i++) {
//see if tab is mywebsit
console.log(tabs[i].url);
if (tabs[i].url == "mywebsite.com") {
//if mywebsite, make that tab the active tab
chrome.tabs.update(window.tabs[i].id, {active: true});
//find the link-post text field, and paste in the youtube link
document.getElementById("post-link").appendChild(currentURL);
};
};
});
我仔细阅读了发布的链接和更多文档。我不再得到无对象错误。相反,我现在没有错误,但代码只能使它console.log(currentURL);
。它不会记录console.log(tabs[i].url);
再次迭代:我想做的是:
感谢您的帮助!