Safari扩展帮助!仅当用户右键单击类时显示上下文菜单项

时间:2014-02-26 21:50:45

标签: contextmenu safari-extension

我有一个关于Safari Extensions的上下文菜单项的简单问题。我只想在用户右键单击HTML页面上的特定类时显示上下文菜单项“菜单项标签A”。任何想法我应该听什么类型的事件或我应该如何做到这一点?谢谢。

1 个答案:

答案 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);

有关注入脚本的更多信息:https://developer.apple.com/library/archive/documentation/Tools/Conceptual/SafariExtensionGuide/InjectingScripts/InjectingScripts.html

有关setContextMenuEventUserInfo的更多信息:https://developer.apple.com/documentation/safariextensions/safaricontentbrowsertabproxy