Chrome扩展程序:从activeTab获取网址并粘贴到另一个标签页

时间:2016-09-06 18:41:33

标签: javascript jquery google-chrome google-chrome-extension

(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);

再次迭代:我想做的是:

  1. 从currentTab获取链接(成功发生)
  2. 然后我想迭代其他currentWindow标签。
  3. 我想查看哪个标签包含网址“mywebsite.com”。
  4. 然后我想让“mywebsite.com”成为activeTab,
  5. 在activeTab中抓取DOM文本字段,
  6. 将步骤1中的网址添加到第4步的DOM(文本字段)
  7. 感谢您的帮助!

0 个答案:

没有答案