通过 Safari 扩展获取选定的文本

发布于 2024-12-11 00:42:44 字数 147 浏览 0 评论 0原文

我开始学习如何编写 Safari 扩展程序,不幸的是 Apple 的开发人员参考页面对此并不十分详细。因此我的问题是:

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

非常感谢您的帮助:)

I started learning how to program a Safari extension, and unfortunately Apple's Developer Reference pages on that are not really detailed. Hence my question:

Anyone knows how I can pass the text selected by a user in a variable? My extension is a context menu element that needs to use that text the user selects from any webpage.

Thank you very much for your help :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

戒ㄋ 2024-12-18 00:42:44

在注入的脚本中,有一个如下所示的语句:

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 + '"');
    }
}

In your injected script, have a statement like the following:

document.addEventListener('contextmenu', function () {
    safari.self.tab.setContextMenuEventUserInfo(event, window.getSelection());
}, false);

Then, in the command handler of your global script, the selection will be accessible as event.userInfo, so you can use it, for example, like this:

function handleCommand(event) {
    if (event.command == 'myContextMenuCommand') {
        alert('You selected: "' + event.userInfo + '"');
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文