2012-11-12 3 views
7

나는 하루 종일이 작업을하려고 노력하고 있습니다 ... 시도 : - 플래시 버전 (최소 3 가지 종류) - document.execCommand (" 복사 ")뿐만 아니라 배경 페이지에서 또한 나는 stackoverflow ... 수많은 가능한 페이지에서 모든 사용 가능한 솔루션을 확인했습니다.크롬 확장 프로그램에서 클립 보드로 복사

실무 사례가 있습니까?

편집 :

manifest.json을

{ 
    "name": "test", 
    "manifest_version": 2, 
    "version": "1.0", 
    "description": "test", 
    "content_scripts": [{ 
      "matches": ["https://somesite.com*"], 
      "js": ["jquery.js", "script.js"], 
      "run_at": "document_end", 
      "css": ["style.css"] 
    }], 
    "permissions": [ 
      "clipboardWrite", 
      "clipboardRead" 
    ] 
} 

script.js

$(document).ready(function() { 
    $('body').append('<textarea id="test"/>'); 
    var $test = $('#test'); 
    $test.text('some text which should appear in clipboard'); 
    $test.select(); 
    document.execCommand('copy'); 
    alert('copied!'); 
}); 

위가 작동하지 않습니다. 경고가 표시됩니다 ...

EDIT2 : 또한 플래시 버전을 사용해 보았지만 해당 확장명이 localhost에서 실행되는 것으로 인해 작동하지 않을 수도 있습니다.

답변

7

이상하게 복사합니다. 복사본에 대한 이벤트 리스너를 등록해야합니다. 그러면 document.execCommand('copy')을 호출 할 때이 리스너가 호출됩니다.

이 이벤트 핸들러의 작동 예입니다

document.addEventListener('copy', function(e) { 
    var textToPutOnClipboard = "some text which should appear in clipboard"; 
    e.clipboardData.setData('text/plain', textToPutOnClipboard); 
    e.preventDefault(); 
}); 
3

당신이 당신의 manifest.json에 사본에 대한 권한을 가지고 있는지 확인 : 다음

"permissions": [ 
    "clipboardWrite", // for copy and cut 
    "clipboardRead", // for paste 

], 

document.execCommand('copy')를 사용하여 뭔가

더 많은 정보 here를 선택되면.

+0

또한 도움을 들으, 당신이 내 코드 (편집 질문 참조) 뭔가 잘못 볼 수 있습니까? – mrzepa

관련 문제