您可能知道,Chrome扩展程序和网页上的js文件无法直接相互访问,而是在隔离的世界中运行。
但是,我想访问页面上的一些函数并从插件中调用这些函数。
我不想自己制作这些功能。
我想知道这是否可行......会很感激所有答案。
编辑:这些功能在后台页面上。它是一个浏览器动作扩展。
更多信息:基本上,我有一个上下文菜单,可以创建一个标签来向网页提交网址。但是,重新打开页面会打开很多标签并打开这么多页面需要时间。因此,如果页面的一个实例已经打开,我愿意直接从扩展名调用页面上的javascript函数。我可以通过权限访问该页面。
TL; DR :需要一种方法来调用页面上的javascript函数(不在本地复制)。
答案 0 :(得分:3)
假设您知道要调用其功能的页面的标签ID,则可以使用扩展程序页面中的chrome.tabs.update(tabId, {url: 'javascript:functionNameHere()'});
。这是有效的,因为javascript:URL是mapped在主要(即页面,而不是隔离)世界中执行脚本。