2011-08-03 71 views
1

複製/粘貼代碼無法在Chrome擴展程序中使用, 我需要編寫Chrome擴展程序,使用剪貼板複製和粘貼數據。複製/粘貼在Chrome擴展程序中不起作用

我在Backgroung.html頁面中編寫下面的代碼,但它不起作用。

function buttonClick(){ 

       document.getElementById('initialText').select(); 


     chrome.experimental.clipboard.executeCopy(1, function() { 
      alert("Copy"); 
      document.getElementById('nameText').focus(); 


      chrome.experimental.clipboard.executePaste(1, function() { 
       alert("Paste"); 
      }); 
     }); 
     } 

回答

5

消除明顯;您是否已將「試驗性」權限添加到您的清單中,並且您是否使用official documentation中列出的最新dev build of Chrome

否則,我不確定什麼可以幫助您,因爲我不使用實驗性API,因爲它們在生產中不可用。有一種解決方法可以在不使用實驗性API的情況下進行復制(使用輸入字段和document.execCommand),但我不確定如何在沒有它的情況下進行粘貼。

編輯:

我剛剛注意到experimental.clipboard是不再對experimental API page上市。這可能是因爲使用實驗性API時可能會發生此名稱空間已被棄用/放棄。一個簡單的測試就是插入;

console.log(typeof chrome.experimental.clipboard); 
console.log(typeof chrome.experimental.clipboard.executeCopy); 
console.log(typeof chrome.experimental.clipboard.executePaste); 

應控制檯輸出作爲背景頁以下;

> object 
> function 
> function 
8

從Chrome 13開始,剪貼板訪問是no longer實驗。

該命令現在爲document.execCommand('paste'),document.execCommand('copy')document.execCommand('cut')

但是,需要將權限添加到您的manifest"clipboardRead""clipboardWrite"

嘗試執行上述操作,看看你如何繼續。

+0

不錯,我不知道這個。另外它似乎'document.execCommand()'僅在後臺頁面中可用。 – serg

+0

我已經使用了'document.execCommand('copy')'爲我的[擴展](https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf)很長一段時間,它一直工作(雖然只有從我的背景頁面)。我想知道現在是否必須添加新的權限。這些變化何時發生?我使用Chrome 13,並且我的擴展程序仍然可以在沒有附加權限的情況下運行 – Alasdair

+0

剛剛添加這些到我的擴展,值得注意的是,雖然沒有額外的訪問被顯示在[擴展的詳細信息頁面](https://chrome.google.com/webstore/detail/dcjnfaoifoefmnbhhlbppaebgnccfddf),我的擴展被禁用,當我更新,直到我接受新的「數據複製和粘貼」訪問。 – Alasdair

相關問題