我正在编写一个扩展程序,该扩展程序对页面上的图像的右键单击做出反应。我想知道图像的尺寸以进行进一步处理。
开箱即用,我的回调获取对选项卡和“信息”对象(OnClickData)的引用,它只公开最少的信息。
有没有人遇到过这种情况?我都在考虑
- 基于 srcUrl 再次加载图像(如果 URL 是动态的,则可能无法重现)并询问它
- 尝试遍历选项卡的 DOM 以查找图像并询问它(不确定这是否需要内容脚本来跨越从扩展程序到网页的边界)
我正在编写一个扩展程序,该扩展程序对页面上的图像的右键单击做出反应。我想知道图像的尺寸以进行进一步处理。
开箱即用,我的回调获取对选项卡和“信息”对象(OnClickData)的引用,它只公开最少的信息。
有没有人遇到过这种情况?我都在考虑
图像属性上下文菜单扩展的作用是将用户脚本与上下文菜单 API 结合使用。
用户脚本被注入所有页面,监听上下文菜单事件,并通过以下方式将有关图像的信息发送到扩展chrome.extension.sendRequest
:
document.addEventListener("contextmenu", function (e) {
var elem = e.srcElement;
if (elem instanceof HTMLImageElement) {
var img = {
src: elem.src,
alt: elem.alt,
height: elem.height,
width: elem.width
}
chrome.extension.sendRequest(img);
}
}, true);
后台页面用于chrome.extension.onRequest.addListener
接收此数据,并将其存储在全局变量中。上下文菜单 API 点击回调从这个全局变量中读取数据。
这假设chrome.extension.sendRequest
调用总是在点击回调之前处理,但情况可能并非总是如此。您可能希望通过回调检查数据是否已到达,如果没有,请稍后再试(使用setTimeout
)。