Google chrome extension 如何使用Chrome';获取用户右键单击的图像的尺寸;s扩展API?

Google chrome extension 如何使用Chrome';获取用户右键单击的图像的尺寸;s扩展API?,google-chrome-extension,Google Chrome Extension,我正在编写一个扩展,它可以对页面上的图像进行右键单击。我想知道图像的尺寸以便进一步处理 开箱即用,我的回调获取对选项卡的引用和一个“info”对象(),它只公开最少的信息 以前有人遇到过这种情况吗?我也在想 基于srcUrl再次加载图像(如果URL是动态的,则可能无法复制)并询问它 尝试遍历选项卡的DOM以查找图像并查询它(不确定这是否需要内容脚本从扩展到网页) 扩展的作用是将用户脚本与上下文菜单API结合使用 用户脚本被注入所有页面,侦听上下文菜单事件,并通过chrome.extension

我正在编写一个扩展,它可以对页面上的图像进行右键单击。我想知道图像的尺寸以便进一步处理

开箱即用,我的回调获取对选项卡的引用和一个“info”对象(),它只公开最少的信息

以前有人遇到过这种情况吗?我也在想

  • 基于srcUrl再次加载图像(如果URL是动态的,则可能无法复制)并询问它
  • 尝试遍历选项卡的DOM以查找图像并查询它(不确定这是否需要内容脚本从扩展到网页)
扩展的作用是将用户脚本与上下文菜单API结合使用

用户脚本被注入所有页面,侦听上下文菜单事件,并通过
chrome.extension.sendRequest
将有关图像的信息发送到扩展:

document.addEventListener(“上下文菜单”,函数(e){
var elem=e.src元素;
if(HTMLImageElement的元素实例){
var img={
src:elem.src,
alt:elem.alt,
高度:元素高度,
宽度:元素宽度
}
chrome.extension.sendRequest(img);
}
},对);
后台页面使用
chrome.extension.onRequest.addListener
接收此数据,并将其存储在全局变量中。上下文菜单API click callback从该全局变量读取数据


这假设
chrome.extension.sendRequest
调用总是在单击回调之前处理,但情况可能并非总是如此。如果数据已经到达,您可能需要进行回调检查,如果没有,请稍后再试(使用
setTimeout
);无论如何,应该不会有太多开销,因为应该缓存映像;根据我的研究,这似乎是最正确的方法。不过,它的重量也相当重,所以我最终选择了@gengkev建议的路线,这恰好适用于我的用例。