2011-08-03 72 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

相关问题