4

I am a newbie to extension development. I am trying to create an extension where i can inject code into a webpage. I have been trying to do this using google chrome content scripts. But i have been unable to do this on facebook.com or google.com. It seems to work on yahoo.com. Is there a reason for this? How can i get around this?

4

2 回答 2

5

我已经在我的一个扩展程序Facebook Friend Exporter中做到了这一点,请随意看看。它使用 Facebook 获取您朋友的联系信息(包括电子邮件),并将他们作为新联系人导出到 Gmail。这需要 Google 和 Facebook 的许可,这与您的相似。

由于您需要向 Facebook 或 Google 注入代码,因此您必须使用Content Scripts。内容脚本允许您在网页上下文中运行 JavaScript 代码。您可以使用标准 DOM 从该网页中提取/读取内容并对其进行更改。

在 manifest.json 中,您需要按如下方式定义它:

{
  "name": "My extension",
  ...
  "content_scripts": [
    {
      "matches": ["http://*.google.com/*", "http://*.facebook.com/*"],
      "css": ["injected_styles.css"],
      "js": ["injected_script.js"],
      "all_frames": true
    }
  ],
  ...
}

有关匹配模式的更多信息,您可以在匹配模式文档中阅读。请记住,顶级内容脚本匹配只允许您注入“.com”域。只要考虑到这一点,如果您想要更多匹配域,您需要将它们一一输入。(我知道这是有问题的,但出于安全原因)

请记住,对于像 Google Mail (gmail) 这样的复杂网站,它通常使用 iframe 来表示其 DOM。这就是我放置“all_frames:true”的原因,因为我希望该内容脚本在页面的所有框架中运行,而不仅仅是顶部框架。

希望有帮助!

于 2011-06-20T04:14:53.760 回答
4

您可以使用Content Scripts将代码注入任何网站。确保在 manifest.json 文件的匹配标记中包含“facebook.com”或“google.com”

于 2011-06-20T04:16:42.137 回答