Google Chrome扩展程序,可让特定网站触发扩展程序代码中的功能

时间:2012-02-13 14:56:45

标签: google-chrome google-chrome-extension chromium

我是扩展开发的新手,也许某人有一个小例子可以解决我的问题。 我计划一个更复杂的代码(将执行chrome API函数),但解决此任务应该可以帮助我开始:

我想创建一个基于网站javascript调用触发弹出窗口或alert()(任何东西)的扩展程序。

因此,例如我的网站有一个按钮,当点击按钮时,会执行带有一些参数的javascript。 我的扩展程序选择这些参数并根据参数执行API(对于我的示例,只是任何弹出窗口)。 在我的基本示例中,我想用网站javascript提供的文本触发某种弹出/通知。 此外,只允许我的网站域名触发,其他任何内容都应该被拒绝。

我真的很感激帮助。 这是我的“空”清单

{
    "name": "Special API",
  "version": "1.0",
  "description": "API demo extension.",
  "browser_action": 
  {
    "default_icon": "gears.ico",
    "popup": "show_credits.htm"
  },
  "permissions": [
    "http://www.mywebsite.com/"
  ]
}

这是我的website.com/example中的示例按钮

<html>
<body>
<button onClick="extension_do_exec('Hellow world','abcabc')">Execute extension function</button>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

您描述的方法存在问题,因为网页的javascripts和扩展的javascripts彼此隔离(有isolated world的概念)。因此,不可能将“由网站javascript提供”的值直接输入到扩展程序的javascript中。我建议采用另一种方法。您可以通过将它们指定为DOM对象的属性来交换某些值。可以从内容脚本访问这些属性,并将其注入到Web页面中。当然,内容脚本可以确定页面的域并适当地工作。至于弹出窗口,这些是扩展的内部页面,您应该在它们和内容脚本之间实现某种messaging