在chrome扩展上的孤立世界(扩展名js和网页js)之间进行通信

时间:2011-12-07 20:40:05

标签: google-chrome google-chrome-extension

您可能知道,Chrome扩展程序和网页上的js文件无法直接相互访问,而是在隔离的世界中运行。

但是,我想访问页面上的一些函数并从插件中调用这些函数。

我不想自己制作这些功能。

我想知道这是否可行......会很感激所有答案。

编辑:这些功能在后台页面上。它是一个浏览器动作扩展。

更多信息:基本上,我有一个上下文菜单,可以创建一个标签来向网页提交网址。但是,重新打开页面会打开很多标签并打开这么多页面需要时间。因此,如果页面的一个实例已经打开,我愿意直接从扩展名调用页面上的javascript函数。我可以通过权限访问该页面。

TL; DR :需要一种方法来调用页面上的javascript函数(不在本地复制)。

1 个答案:

答案 0 :(得分:3)

假设您知道要调用其功能的页面的标签ID,则可以使用扩展程序页面中的chrome.tabs.update(tabId, {url: 'javascript:functionNameHere()'});。这是有效的,因为javascript:URL是mapped在主要(即页面,而不是隔离)世界中执行脚本。