2017-08-10 90 views
0

我正在將我的Chrome擴展程序移植到Firefox。它有一個粘貼到剪貼板功能。但是,我還沒有在Firefox中這樣做過運氣。這是我在後臺腳本中試圖做的事情:從Firefox中的後臺腳本複製文本到剪貼板WebExtension

const input = document.createElement('textarea'); 
input.style.position = 'fixed'; 
input.style.opacity = 0; 
input.value = text; 
document.body.appendChild(input); 
input.select(); 
document.execCommand('copy'); 
logger(text); 
document.body.removeChild(input); 

這在Chrome中正常工作。我的清單中有clipboardWrite權限。任何暗示爲什麼它不適用於Firefox?

+0

請將[問題]置於主題上:包括一個重複出現問題的[mcve]。對於Chrome擴展程序或Firefox WebExtensions,這通常意味着包含您的* manifest.json *以及一些背景,內容和/或彈出式腳本/ HTML。尋求調試幫助的問題(「爲什麼代碼不按我想要的方式工作?」)必須包括:(1)期望的行爲,(2)特定問題或錯誤,以及(3)重現它所需的最短代碼*在問題本身*。另請參閱:[我可以在這裏詢問什麼主題?](http://stackoverflow.com/help/on-topic)和[問]。 – Makyen

回答

1

您正試圖從後臺腳本執行此操作,這不起作用。該MDN頁:「Interact with the clipboard」在「Browser-specific considerations」說,爲Firefox:

你可以寫在所有執行這樣的剪貼板上下文除了背景頁秒。在Firefox中,您無法選擇文本或將背景頁面中的輸入字段關注,因此無法從背景頁面寫入剪貼板。

您需要在其他上下文中寫入剪貼板。例如,您可以注入一個內容腳本,或打開一個選項卡或窗口到您的擴展中的頁面。您如何選擇這樣做取決於您對擴展程序已擁有的附加權限(例如tabs),當前打開的選項卡(是否打開了任何可打開腳本的選項卡)以及可接受的視覺影響你(例如,簡單地打開一個你不激活的標籤,這對用戶來說可能是或者可能不是)。

+0

非常感謝提示和是啊,它與內容腳本很好地工作。再次感謝 – Achayan

相關問題