2013-01-22 4 views
10

아래 JavaScript를 사용하여 텍스트를 클립 보드에 복사하고 있습니다. IE에서 작동하지만 Firefox와 Chrome에서는 작동하지 않습니다.클립 보드에 복사 - FF, Chrome에서 작동하지 않습니다.

제게 조언 해주세요. 무엇이 잘못 되었나요?

function setDataToclipboard() 
{ 

var str=document.getElementById("populatedString").value; 

if (window.clipboardData && clipboardData.setData) { 
    clipboardData.setData("Text", str); 
    alert("Copied!"); 
} 
} 

답변

7

나는 window.clipboardData가 IE라고 생각합니다. 클립 보드에 액세스하는 것은 보안 문제이므로 FF 또는 Chrome에서 쉽게 수행 할 수 없습니다.

이 스레드를 참조하십시오 How do I copy to the clipboard in JavaScript?

10

클립 보드 조작이되지 크로스 브라우저를. 크로스 브라우저 솔루션의 경우 플래시가 필요합니다. 이 라이브러리 https://github.com/jonrohan/ZeroClipboard

에서

봐 당신은 다음과 같이 ZeroClipboard 사용할 수 있습니다 : 당신이 버튼을 클릭하면

<button id="my-button" data-clipboard-text="Copy me!">Copy to Clipboard</button> 
<script> 
    var clip = new ZeroClipboard(document.getElementById('my-button')); 
</script> 

텍스트 Copy me!가 클립 보드에 투입 될 것입니다. 자세한 지침은

https://github.com/jonrohan/ZeroClipboard/blob/master/docs/instructions.md

+2

그리고 cb가 문제가되지 않는다면 어떻게 될까요? 내 직장이 최고만을 사용하기에 충분히 똑똑하기 때문에 Chrome에서만 비 플래시 솔루션을 원합니다. – SpYk3HH

5

the documentation for clipboardData를 참조 라이브러리의 API 읽고, 특히 섹션을 확인 :

여기에 적용 아무 기준이 없습니다

.

독점적 인 Microsoft gubbins를 사용하고 있으므로 다른 브라우저에서 작동하지 않아야합니다.

브라우저 간 기술을 사용하여 클립 보드에 액세스하려면 this question을 참조하십시오.

여기에 a draft of a standard for accessing the clipboard이 있지만 야생에있는 구현 (및 canIuse doesn't know of any either)을 알지 못합니다.

3

에 의해 구현된다. 그러나, 최근에,이 코드가 특정 브라우저에서의 contentEditable 필드에서 작동 발견

clipboard = e.originalEvent.clipboardData; 
clipboard.setData('text/plain', plainData); 
clipboard.setData('text/html', htmlData); 

참고 :이 경우 전자가 복사 및/또는 절단 이벤트입니다. 이 이벤트는 발생하여 onCopy() 또는 onCut() 작업으로 검색 할 수 있습니다.

이 코드는 다음 브라우저의 최신 버전에서 작동하도록 확인 :

  • 크롬 (의 PC/Mac과 안드로이드)
  • 안드로이드 4.(당신은 Play 스토어에서 업데이트만큼) 4+ 웹보기 -> 안드로이드 개발진
  • 파이어 폭스
  • 사파리 (맥 전용)

Internet Explorer가 보인다 좋은 소식은 대신 window.clipboardData.setData와 함께 작동하지만 유지 IE 클립 보드는 'text''url' 데이터 만 허용한다는 것을 명심하십시오.

다음 브라우저가 시스템 클립 보드 개체에 액세스 할 수 있지만

, 이러한 clipboard.setData을 사용하여 클립 보드에 데이터를 설정할 수 없습니다 :

  • MS 에지
    • 대신 클립 보드로의 UntrustedDragDrop 객체를 제공합니다 ..
    • 또한 setData가 작동하지 않으면 true를 반환합니다. > 4.4
    • iOS의 사파리와 웹보기 아래 - - 야호 아이폰 OS 다른 모든 브라우저
  • 안드로이드 웹보기를 정의되지 않은 사항 setData 돌아갑니다!