2017-01-24 16 views
0

我們正在爲我們的在線文本編輯器製作自定義上下文菜單。裏面只有複製/粘貼選項。但是我們發現很難從瀏覽器中訪問系統剪貼板。幾年前,這似乎是不可能的:Custom Context Menu with Javascript?Javascript:如何使用複製/粘貼選項製作自定義上下文菜單

儘管如此,谷歌成功地做到這一點在谷歌文檔,不使用閃光燈或特殊插件的幫助下,它的據我知道的工作在Chrome和Firefox瀏覽器。我想知道他們用什麼來實現這個目標?

enter image description here

+0

事件處理程序,包含了preventDefault( ),所以不顯示標準菜單。相同的功能在鼠標指針的當前位置旁邊顯示一個菜單。 – Shilly

+0

你的問題是如何使自定義的上下文菜單或如何獲得剪貼板? –

+0

這是關於如何訪問剪貼板 –

回答

0

要渲染菜單,你可以聽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'); 
}); 
+0

似乎「粘貼」在我的瀏覽器中不起作用(Chrome 56)。在我的搜索中,似乎人們通常在擴展中使用它們 –

+0

'document.execCommand('paste');'在IE11中適用於我,所以恐怕我無法幫助你。 – Shilly

0

一些研究之後,我想通了功能在Chrome中工作,但不能在Firefox(在我的問題的錯誤)。彈出窗口會顯示指示用戶使用快捷鍵代替: A Dialog showing incompatibility with browsers suggesting key shortcuts be used as a workaround, for a mac

因此,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

上右鍵單擊鼠標按鈕
相關問題