从chrome扩展名background.js访问活动页面html代码

时间:2013-11-21 19:20:28

标签: javascript jquery google-chrome-extension

我无法从我的扩展程序的background.js脚本访问活动标签页(页面)的html代码

的manifest.json

"background": {
  "scripts": ["jquery.js","background.js"]
},

background.js

chrome.webRequest.onBeforeRequest.addListener(
  function(info) {
    return {redirectUrl: "http://www.mysite.com/script.php?" +
                        "data=" + encodeURIComponent($('#J_Data').text())};
  },
  {
  urls: [
    "http://www.othersite.com/addItems.do*"
  ],
  types: ["script"]
},
["blocking"]);

但是background.js无法访问活动页面html代码和“$('#J_Data')。text()”undefined! 如何使用background.js和jQuery访问活动页面?

1 个答案:

答案 0 :(得分:1)

您正在后台脚本的上下文中执行jQuery,并且它无权访问页面本身。您将需要考虑使用chrome.tabs.executeScriptcontent scripts将代码注入您感兴趣的选项卡。如果有您感兴趣的链接,您可能需要做的是将脚本注入选项卡in,pass them to the background script并存储在tabIds / urls的临时索引中,并在onBeforeRequest监听器中包含和查询该索引。