我有一个关于Safari Extensions的上下文菜单项的简单问题。我只想在用户右键单击HTML页面上的特定类时显示上下文菜单项“菜单项标签A”。任何想法我应该听什么类型的事件或我应该如何做到这一点?谢谢。
答案 0 :(得分:3)
您需要的是注入的脚本。请参阅Luke链接到的文档页面,标题为“添加上下文信息”。注入的脚本必须有一个像这样的“contextmenu”事件处理程序:
document.addEventListener("contextmenu", function (evt) {
safari.self.tab.setContextMenuEventUserInfo(evt, evt.target.className);
}, false);
在您的全局页面脚本中,您应该具有以下内容:
safari.application.addEventListener("contextmenu", function (evt) {
// evt.userInfo will have the classname of the right-clicked element
if (evt.userInfo == 'my_special_className') {
evt.contextMenu.appendContextMenuItem('myCommandName', 'My Context Menu Item');
} else {
// don't insert the context menu item
}
}, false);
有关setContextMenuEventUserInfo的更多信息:https://developer.apple.com/documentation/safariextensions/safaricontentbrowsertabproxy