1

이미지를 클립 보드에 복사하는 Firefox 확장 기능을 개발하려고합니다. 과거에는 clipboard addon SDK를 사용하여이를 수행 한 것으로 보입니다. 그러나 이것은 더 이상 사용되지 않으므로 이미지를 클립 보드에 복사하는 다른 방법을 찾아야합니다. docs mentioneddocument.execCommand('copy')을 사용하고 있지만 이미지를 복사 할 때 작동하지 않습니다.Firefox webextension addon 대신 clipboard sdk 이미지 복사

웹 검색에서 자바 스크립트로 이미지를 클립 보드로 복사 할 수 없지만 Firefox에 클립 보드에 액세스 할 수있는 일종의 webextensions API가 있는지 궁금합니다.

편집 :

document.body.appendChild(img); 
let range = document.createRange(); 
range.setStartBefore(img); 
range.setEndAfter(img); 
range.selectNode(img); 
window.getSelection().addRange(range); 
var successful = document.execCommand('copy'); 
window.getSelection().removeAllRanges(); 
document.body.removeChild(img); 

img는 HTML 이미지 요소 : 여기에 내가 이미지를 복사하려고 사용 된 코드입니다. 실행해도 아무런 변화가 없습니다.

+0

[편집] 문제가 될하시기 바랍니다에 - 주제 : 포함 A [ mcve]는 문제를 복제합니다. Chrome 확장 프로그램이나 Firefox WebExtensions의 경우 * manifest.json * 및 백그라운드, 콘텐츠 및/또는 팝업 스크립트/HTML 중 일부를 포함한다는 것을 거의 항상 의미합니다. (1) 원하는 동작, (2) 특정 문제 또는 오류 및 (3) 코드를 재현하는 데 필요한 최단 코드 * 디버그 도움말을 찾는 질문 ("이 코드가 원하는 방식으로 작동하지 않는 이유는 무엇입니까?") 질문 자체에. 또한 [여기에 어떤 주제를 물어볼 수 있습니까?] (http://stackoverflow.com/help/on-topic) 및 [ask]를 참조하십시오. – Makyen

답변

0

WebExtensions의 파일 크기는 setImageData()입니다.

복사 확장에 번들 된 이미지 :

// requires the API permission "clipboardWrite" 

fetch(browser.runtime.getURL('image.png')) 
.then(response => response.arrayBuffer()) 
.then(buffer => browser.clipboard.setImageData(buffer, 'png')); 

clipboard.setImageData() - Mozilla | MDN

+1

링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. 따라서 여기에 답변의 핵심 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 'setImageData'가 어떻게 작동하는지에 대해 가장 관련성이 높은 부분을 인용하면, 대답의 장기적인 가치가 향상됩니다. – adiga

+0

@adiga 감사합니다. 내 대답에 예제를 추가했습니다. – user4352571