Chrome扩展程序内容脚本和iframe

时间:2011-07-04 10:41:12

标签: javascript google-chrome-extension

我正在尝试为google chrome做一个扩展程序:

加载www.example.com时运行 example.com有一个iframe到另一个网站,我需要访问这个iframe的链接(这是免费的,我需要抓取下载链接)

到目前为止一切顺利,但是......

然后我需要扩展名来通知链接url到example.com进行进一步处理。

任何想法o方向??

我已阅读http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication但无法使其正常工作......

3 个答案:

答案 0 :(得分:37)

您需要注入2个内容脚本:

"content_scripts": [
    {
      "matches": ["http://www.example.com/*"],
      "js": ["example.js"]
    },{
      "matches": ["http://www.rapidshare.com/*"],
      "all_frames": true,
      "js": ["rapidshare.js"]
    }
]

要将链接从一个脚本转移到另一个脚本,您需要通过后台页面进行通信:

<强> rapidshare.js:

chrome.extension.sendRequest({url: "link"});

<强> background.js:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    chrome.tabs.sendRequest(sender.tab.id, request);
    sendResponse({});
});

<强> example.js:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    console.log("received url:", request.url);
    sendResponse({});
});

答案 1 :(得分:2)

iframe是浏览器的单独文档,这就是为什么您可以使用Chrome扩展程序并将其直接集成到iframe中的原因。您只需在chrome扩展清单文件中提及iframe的URL即可。我们将Chrome扩展应用的一些菜单和工具栏集成到iframe中。它有效。

有一篇很好的文章作为Chrome扩展程序和iFrame http://www.natewillard.com/blog/chrome/javascript/iframes/2015/10/20/chrome-communication/的其他信息

答案 2 :(得分:0)

v3:serg 的回答,对我有用

RollingDeploy

background.js:

"manifest_version": 3,
"content_scripts": [
    {
      "matches": ["http://www.rapidshare.com/*"],
      "all_frames": true,
      "js": ["insideIframe-content.js"]
    }
]

insideIframe-content.js:

chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
  console.log(url)
})