我們正在爲我們的在線文本編輯器製作自定義上下文菜單。裏面只有複製/粘貼選項。但是我們發現很難從瀏覽器中訪問系統剪貼板。幾年前,這似乎是不可能的:Custom Context Menu with Javascript?Javascript:如何使用複製/粘貼選項製作自定義上下文菜單
儘管如此,谷歌成功地做到這一點在谷歌文檔,不使用閃光燈或特殊插件的幫助下,它的據我知道的工作在Chrome和Firefox瀏覽器。我想知道他們用什麼來實現這個目標?
我們正在爲我們的在線文本編輯器製作自定義上下文菜單。裏面只有複製/粘貼選項。但是我們發現很難從瀏覽器中訪問系統剪貼板。幾年前,這似乎是不可能的:Custom Context Menu with Javascript?Javascript:如何使用複製/粘貼選項製作自定義上下文菜單
儘管如此,谷歌成功地做到這一點在谷歌文檔,不使用閃光燈或特殊插件的幫助下,它的據我知道的工作在Chrome和Firefox瀏覽器。我想知道他們用什麼來實現這個目標?
要渲染菜單,你可以聽contextmenu事件,whcih是通過右鍵點擊觸發。然後你可以渲染一個自定義菜單。
複製/粘貼等可能完成使用document.execCommand(),它可以用於觸發複製/粘貼等。檢查您的瀏覽器以查看哪些命令受支持。
https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand
// on right click, copy to clipboard.
document.querySelector('body').addEventListener('contextmenu', function(event) {
// prevent the normal context menu from popping up
event.preventDefault();
// copy current selection
document.execCommand('copy');
});
似乎「粘貼」在我的瀏覽器中不起作用(Chrome 56)。在我的搜索中,似乎人們通常在擴展中使用它們 –
'document.execCommand('paste');'在IE11中適用於我,所以恐怕我無法幫助你。 – Shilly
一些研究之後,我想通了功能在Chrome中工作,但不能在Firefox(在我的問題的錯誤)。彈出窗口會顯示指示用戶使用快捷鍵代替:
因此,Google似乎使用Google Docs Offline擴展來提供此功能。如果該擴展程序被禁用,它會提示您安裝Google雲端硬盤應用程序。
很遺憾,沒有通用的解決方案。
下面的談話是幾年的歷史,但仍保持了一個道理:
How to paste on click? It works in google docs
javascript cut/copy/paste to clipboard: how did Google solve it?
Adding copy & paste functionalities to a custom menu of a webapp
上右鍵單擊鼠標按鈕
事件處理程序,包含了preventDefault( ),所以不顯示標準菜單。相同的功能在鼠標指針的當前位置旁邊顯示一個菜單。 – Shilly
你的問題是如何使自定義的上下文菜單或如何獲得剪貼板? –
這是關於如何訪問剪貼板 –