通过Safari扩展获取所选文本

3

我开始学习如何编写Safari扩展,但是苹果开发者参考文档并没有提供详细的内容。因此我的问题是:

有人知道我如何将用户选择的文本传递给一个变量吗?我的扩展是一个上下文菜单元素,需要使用用户从任何网页中选择的文本。

非常感谢您的帮助 :)

1个回答

1
在您的注入脚本中,添加以下语句:
document.addEventListener('contextmenu', function () {
    safari.self.tab.setContextMenuEventUserInfo(event, window.getSelection());
}, false);

然后,在全局脚本的命令处理程序中,该选择将可通过 event.userInfo 访问,因此您可以像这样使用它:
function handleCommand(event) {
    if (event.command == 'myContextMenuCommand') {
        alert('You selected: "' + event.userInfo + '"');
    }
}

我的脚本在加入这行代码后就无法正常工作了: safari.self.tab.setContextMenuEventUserInfo(event, window.getSelection());这行代码甚至阻止了脚本继续执行下去。 - Anas
尝试使用window.getSelection().toString()而不仅仅是window.getSelection()。 - chulster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接