标签创建后的chrome扩展解析体

时间:2014-07-17 17:03:27

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

我需要一些帮助来理解某些事情。

到目前为止我所拥有的是扩展解析页面并在匹配时注入链接。 我想要的是打开我的扩展/tab.html并在那里用我从内容脚本获得的变量填充输入字段。到目前为止,我得到了这个工作。

我有background.js这个

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
   chrome.tabs.create({url: chrome.extension.getURL('tab.html')}, function(tab) {
      request_s = request.x+' '+request.y;
      console.log(request_s);
   });
});

有效。

我打开了标签页和请求,但无论我做什么,我似乎无法更改tab.html中输入字段的值 我尝试使用$('#id')。val(request_s),但因为看起来dom还没准备好,所以没有任何反应。

所以我试着添加背景

chrome.tabs.onUpdated.addListener(function(tabid, changeInfo, tab) {
   if(changeInfo.status == "complete" && tab.url == chrome.extension.getURL('tab.html')) {
      console.log($('body'));
   }
});

和log body innerhtml仅包含tab.html的脚本。任何建议我应该怎样做才能在准备好时访问tab.html dom?

2 个答案:

答案 0 :(得分:1)

您在内容脚本中运行的所有代码都没有(因此,从不在tab.html中)

您应该查看https://developer.chrome.com/extensions/content_scriptschrome.tabs.executeScript

此外,您应该查看onMessage文档和sendResponse参数。如果您想在异步通话后sendResponse(例如tabs.create),则需要return true

答案 1 :(得分:0)

请参阅this answer我写的类似请求 - 打开扩展标签并将数据传递给它。

我们的想法是保存您想要传递的数据,然后在您准备好的标签页上提出请求。