[JQUERY] 플래시를 사용하지 않고 클립 보드로 선택한 텍스트를 복사하십시오 - 크로스 브라우저 여야합니다.
JQUERY플래시를 사용하지 않고 클립 보드로 선택한 텍스트를 복사하십시오 - 크로스 브라우저 여야합니다.
해결법
-
1.매우 새로운 옵션이 있습니다. 그것은 크로스 브라우저이지만 모두가 브라우저를 업데이트 할 때까지는 시간이 걸릴 것입니다.
매우 새로운 옵션이 있습니다. 그것은 크로스 브라우저이지만 모두가 브라우저를 업데이트 할 때까지는 시간이 걸릴 것입니다.
Document.exCommand ( 'copy')를 사용하여 작동합니다. 함수. 이 기능을 사용하면 텍스트 선택을 복사합니다. 이것은 텍스트 탐지기와 함께 작동 할뿐만 아니라 웹 페이지의 모든 선택한 텍스트 (SPAN, P, DIV 등)를 사용합니다.
Internet Explorer 10+, Chrome 43+, Opera 29+ 및 Firefox 41+에서 사용할 수 있습니다 (여기에서 ExecCommand 호환성 참조).
// 변수를 설정합니다 var textArea = document.getElementById ( "textArea"); var 답변 = document.getElementById ( "courianswer"); var copy = document.getElementByID ( "CopyBlock"); copy.addeventListener ( '클릭', 함수 (e) { // 일부 텍스트를 선택하십시오 (또한 범위를 만들 수도 있음) textarea.select (); // 지원되지 않는 브라우저에 Try & Catch를 사용하십시오 시도 { // 중요한 부분 (선택한 텍스트 복사) var ok = document.execCommand ( 'copy'); if (ok) answer.innerhtml = '복사!'; 그렇지 않으면 answer.innerhtml = '복사 할 수 없습니다!'; } catch (err) { answer.innerhtml = '지원되지 않는 브라우저!'; } });
-
2.이 답변은 2011 년에 정확하지만 이제는 상당히 오래되었습니다. 아크의 답변 또는 https://stackoverflow.com/a/30810322/489560을 참조하십시오
이 답변은 2011 년에 정확하지만 이제는 상당히 오래되었습니다. 아크의 답변 또는 https://stackoverflow.com/a/30810322/489560을 참조하십시오
클라이언트의 클립 보드에 텍스트를 자동으로 복사하는 데 사용할 플래시 추가 기능을 사용해야합니다. 브라우저는 Active-X 구성 요소를 사용하지 않고 클라이언트의 클립 보드를 자동으로 수정하는 웹 사이트가 보안 문제가 되므로이 제품을 이렇게 설계되었습니다. Active-X 구성 요소는 사용자의 컴퓨터에서 실행되는 프로그램이며 기술적으로 사용자의 동의를 설치해야합니다. 클립 보드가 운영 체제 구성 요소임을 고려하면 웹 브라우저가 웹 사이트가 기본적으로 Highjack을 허용하지 않도록하기를 고려하십시오.
사용자에게 플래시가 없거나 Active-X가 비활성화 된 경우, 그 또는 그녀는 보안에 관한 편집증이며 어쨌든 키보드를 망칠 수 없을 것입니다. 이 시점에서 사용자는 웹 사이트에서 많은 자동 또는 스크립트 기반 기능을 사용하지 않도록 사용됩니다. 엔드 사용자의 소망을 공개적으로 무시하지 않는 것이 가장 좋습니다.
다음 스택 오버플로 링크를 참조하십시오.
궁극적 인 답변은 원하는 것처럼 클립 보드 기능을 사용하기 위해 작고 보이지 않는 Flash Movie 및 JavaScript를 사용하는 라이브러리 인 제로 클립 보드를 사용해야합니다. 이 라이브러리는 여기에서 사용할 수 있습니다 : https://github.com/zeroclipboard/zeroclipboard 두 번째 링크는 Flash가 비활성화되었거나 설치되지 않거나 설치되어 있지 않은지 감지하는 방법을 보여 주며 자바 스크립트와 같은 경고 메시지를 표시 할 수있는 방법을 보여줍니다.
-
3.이제 @zenorocha의 clipboard.js가 있습니다
이제 @zenorocha의 clipboard.js가 있습니다
이를 사용하려면 Page.html (또는 Bower 또는 NPM으로 설치)에서 스크립트를 다운로드하여 호출하십시오.
<script src="path_to_script/clipboard.min.js"></script>
Script.js에서 새 트리거를 인스턴스화합니다
new Clipboard('.trigger');
사용법의 몇 가지 예를 보려면 다음과 같이하십시오. http://zenorocha.github.io/clipboard.js/#usage
-
4.
function copyTextToClipboard(text) { var textArea = document.createElement("textarea"); textArea.style.position = 'fixed'; textArea.style.top = 0; textArea.style.left = 0; textArea.style.width = '2em'; textArea.style.height = '2em'; textArea.style.padding = 0; textArea.style.border = 'none'; textArea.style.outline = 'none'; textArea.style.boxShadow = 'none'; textArea.style.background = 'transparent'; textArea.value = text; textArea.id = 'ta'; document.body.appendChild(textArea); //textArea.select(); var range = document.createRange(); range.selectNode(textArea); textArea.select(); window.getSelection().addRange(range); try { var successful = document.execCommand('copy'); } catch (err) { alert('Oops, unable to copy'); } document.body.removeChild(textArea); return successful; }
이것이 도움이되기를 바랍니다
-
5.이것은 꽤 늦은 답변이지만 미래를 검색하고 ExecCommand ( 'Copy') 이벤트를 시도하여 데스크톱 및 모바일 장치에서 작동하는 데 문제가 있습니다.
이것은 꽤 늦은 답변이지만 미래를 검색하고 ExecCommand ( 'Copy') 이벤트를 시도하여 데스크톱 및 모바일 장치에서 작동하는 데 문제가 있습니다.
교차 브라우저, 모바일 친화적이며 외부 소스 또는 프로그램이 필요 없음
function CopyString(){ var StringToCopyElement = document.getElementById('YourId'); StringToCopyElement.select(); if(document.execCommand('copy')){ StringToCopyElement.blur(); }else{ CopyStringMobile(); } } function CopyStringMobile(){ document.getElementById("YourId").selectionStart = 0; document.getElementById("YourId").selectionEnd = 999; document.execCommand('copy'); if (window.getSelection) { if (window.getSelection().empty) { // Chrome window.getSelection().empty(); } else if (window.getSelection().removeAllRanges) { // Firefox window.getSelection().removeAllRanges(); } } else if (document.selection) { // IE? document.selection.empty(); } }
copystring () 함수를 찾고있는 모든 것을 클릭 이벤트로 설정하십시오. 이것은 모바일 및 데스크톱 운영 체제에서 모두 사용할 수 있습니다.
설명
오늘날 문자열을 선택하는 데 두 가지 다른 방법이 필요합니다. 데스크톱을 통해 바탕 화면을 통해 수행하는 방법은 모바일 장치에서 작동하지 않습니다. 데스크탑 메소드가 작동하고 그렇지 않은 경우, 모바일 장치에서 작동하는 코드를 해리하려면 기능을 Cate하는 경우 기능이 있습니다. 이 방법은 다운로드 또는 링크가 필요하지 않습니다. 두 가지 방법 모두 복사하려는 텍스트를 강조 표시 한 다음 복사 명령을 클립 보드로 실행하고 복사하려고하는 문자열을 선택 해제합니다. 당신은 당신이 좋아하는 것에 코드를 섞을 수 있지만 이것은 그렇게하는 방법입니다.
from https://stackoverflow.com/questions/6300213/copy-selected-text-to-the-clipboard-without-using-flash-must-be-cross-browser by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 팝업 창으로 데이터를 부모로 되돌릴 수 있습니다 (0) | 2020.11.01 |
---|---|
[JQUERY] GetJson JQuery에서 인코딩을 설정하는 방법 (0) | 2020.11.01 |
[JQUERY] 마우스 클릭을 완전히 비활성화하는 방법 (0) | 2020.11.01 |
[JQUERY] DOM 요소에서 추가 / 제거되는 요소를 탐지하는 방법은 무엇입니까? (0) | 2020.11.01 |
[JQUERY] jQuery가 Ajax 요청이 보류중인 경우 어떻게 알 수 있습니까? (0) | 2020.11.01 |