Javascript chrome上下文菜单-获取选项卡中的窗口对象

Javascript chrome上下文菜单-获取选项卡中的窗口对象,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一个选项卡,在窗口上定义了一个对象 window.foo = 'bar'; 使用chrome.contextMenusapi,我想在window.foo值之外创建菜单项 目标是获得此信息,而无需在预先存在的上下文菜单项上注册单击事件。如何在页面加载上获取窗口对象,并将其成功地传递给上下文api?您所请求的还不可能,但有两个功能请求可以在实现时实现您的目标: 今天 由于您希望创建特定于页面的上下文菜单,因此可以检查页面是否包含该变量,然后将URL发送到后台页面,而后台页面又为该特定

我有一个选项卡,在窗口上定义了一个对象

window.foo = 'bar';
使用
chrome.contextMenus
api,我想在
window.foo
值之外创建菜单项


目标是获得此信息,而无需在预先存在的上下文菜单项上注册单击事件。如何在页面加载上获取窗口对象,并将其成功地传递给上下文api?

您所请求的还不可能,但有两个功能请求可以在实现时实现您的目标:


今天 由于您希望创建特定于页面的上下文菜单,因此可以检查页面是否包含该变量,然后将URL发送到后台页面,而后台页面又为该特定URL模式注册上下文菜单(请参阅)。只有当您希望在具有相对唯一URL的页面上显示上下文菜单时,这才有效

要检测页面是否有
window.foo
变量,并将信息传达给后台页面,请参阅


未来 我希望将实现一个声明性上下文菜单,因此您的扩展应该预先告诉Chrome必须呈现上下文菜单。如果实现了第二个功能请求,那么扩展可以向文档添加一个属性,以触发获取所需的上下文菜单

假设可以声明性地切换上下文菜单,那么您必须克服另一个障碍:页面的
窗口.foo
变量对内容脚本不直接可见(更不用说背景页面了)。因此,您必须在页面的上下文中运行代码,例如,使用中描述的方法之一,然后使用例如
document.documentElement.setAttribute
来设置与要实现的contextMenus API扩展匹配的属性