2013-08-06 2 views
6

사용자가 많은 수의 이메일 주소를 클립 보드에 복사 할 수있게하고 싶습니다. window.prompt에 전달 된 텍스트가 "..."로 바뀝니다.

How do I copy to the clipboard in JavaScript?

그러나, 테스트 할 때 나는 window.prompt() 항상...와 이메일 하나의 일부를 대체 발견이 대답은 그렇게 할 수있는 가장 신뢰할 수있는 방법처럼 보였다.

window.prompt ("To copy emails to clipboard, press: Ctrl+C, then Enter", 
    "[email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected]t.com;[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected]; [email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];[email protected];[email protected];[email protected]; 
    [email protected];[email protected];"); 

JSFiddle : 다음 테스트 데이터와 예제 코드

여기
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected]; [email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected];[email protected];[email protected];[email protected]; 
[email protected];[email protected]; 

입니다 : 여기

은 테스트 데이터입니다 위의 링크에 http://jsfiddle.net/MkYDz/

클릭, 복사 및 붙여 넣기가 텍스트를 텍스트 편집기로 보내면 이메일 중 하나 (약 절반)가 다음과 같이 표시됩니다.

[email protected] 

왜 이런 일이 발생합니까?

+0

어떤 브라우저를 사용하고 있습니까? Worksforme. – Bergi

+0

Chrome을 사용하여 다시 작성할 수 있습니다. – j08691

+0

Chrome 28, OSX 10.7에서 작동합니다. 그러나 일부 브라우저에서는 작동하지 않는 경우 자신의 집에서 만든 모달과 텍스트 영역을 사용해야합니다. – bfavaretto

답변

8

프롬프트에 대한 문자 수 제한이 MVP가 말했듯이 이유가 될 것 같습니다 :

다음은 정확히 2000 자 (나는 XXX와 마지막 세 문자를 대체)를 사용하여 데모입니다. 더 나은 해결 방법이 있습니다. textarea에 전자 메일 텍스트를 내용으로 사용하고 select 기능을 사용하여 프롬프트에서와 마찬가지로 텍스트 영역의 전체 텍스트를 선택하십시오.

예 :

$('#container').append('To copy emails to clipboard, press: Ctrl+C, then Enter <br /> 
<textarea id="emailsToCopy">'+emailsToCopy+'</textarea>'); 
$('#emailsToCopy').select().focus(); 

가정하면, jQuery를 사용합니다. 그렇지 않다면 텍스트 영역 DOM 요소에 select 함수를 사용할 수 있습니다. 당신이 jQuery를 사용하지 않는 경우

var emailsTxtArea = document.getElementById(emailsToCopy); 
emailsTxtArea.select(); 
emailsTxtArea.focus(); 
7

window.prompt() 함수는 Chromium에서 2000 자로 제한됩니다. 입력 문자열이이 제한을 초과하면 (예 : 2059 자) 입력 문자열은 점으로 표시된 가운데에서 잘립니다. 이를 ellipsis이라고합니다. http://jsfiddle.net/MkYDz/2/

;[email protected]"); 
2

내가 Jitesh의 대답에 대해 언급 것보다 명성 포인트가 있다면 ...

, 당신은이 작업을 수행 할 수 없습니다

emailsTxtArea.select().focus(); 

대신 당신은 이렇게해야합니다 :

emailsTxtArea.select(); 
emailsTxtArea.focus(); 

일반 자바 스크립트에서 select 메소드는 객체를 반환하지 않습니다.

관련 문제