如何在电子应用程序中仅复制和粘贴突出显示的文本?

MJE*_*END 5 javascript copy-paste electron

我在将复制粘贴到我的电子应用程序中时遇到很多麻烦。我制作了一个复制和粘贴窗口用户界面,但一直在寻找一种方法来实现复制和粘贴功能(仅复制突出显示的文本)。我已经这样做很长时间了,并尝试使用电子本身的剪贴板 API,但这不会复制突出显示的文本,仅复制您自己添加的文本。我还尝试制作一个仅运行 CTRL + C 命令的按钮,但我无法让它工作,所以任何帮助将不胜感激!

提前致谢!

aab*_*leh 2

如果您只想从自己的应用程序窗口获取选定的文本,则可以Window.getSelection()正常使用 Web API,就像在浏览器中运行的任何 Web 应用程序中一样

这个答案

function getSelectionText() {
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    return text;
}
Run Code Online (Sandbox Code Playgroud)

如果您想要一个上下文菜单(右键单击),您可以使用 Electron MenuAPI 通过复制菜单项构建此上下文菜单,或者您可以使用 npm 包来为您执行此操作electron-context-menu

如果您想从任何应用程序中获取任何突出显示的文本,您可以使用合成单击CTRL+C,然后从剪贴板中获取文本。我创建了一个 npm 包electron-selected-text来为您执行此操作,并且它还保留剪贴板中的旧文本