我是扩展开发的新手,也许某人有一个小例子可以解决我的问题。 我计划一个更复杂的代码(将执行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>
答案 0 :(得分:2)
您描述的方法存在问题,因为网页的javascripts和扩展的javascripts彼此隔离(有isolated world的概念)。因此,不可能将“由网站javascript提供”的值直接输入到扩展程序的javascript中。我建议采用另一种方法。您可以通过将它们指定为DOM对象的属性来交换某些值。可以从内容脚本访问这些属性,并将其注入到Web页面中。当然,内容脚本可以确定页面的域并适当地工作。至于弹出窗口,这些是扩展的内部页面,您应该在它们和内容脚本之间实现某种messaging。