Input 내용 을 복사 하 는 js 코드모든 브 라 우 저 를 지원 하여 Firefox 3.5 이상 의 문 제 를 수정 하 였 습 니 다.

3300 단어 복제 하 다.Input
그러나 IE6 두 줄 의 JS 코드 만 있 으 면 됩 니 다.IE7 이상 도 차이 가 많 지 않 습 니 다.다만 안전 힌트 가 나 오 는 것 이 비교적 역 겨 울 뿐 사용자 가 보면 의심 이 있 을 것 입 니 다.그리고 Firefox,Chrome 등 은 복사 하지 말 라 고 합 니 다.예전 에 인터넷 에 이런 코드 가 있 었 던 것 을 기억 합 니 다.찾 아 보 니 모두 fireforx 3.5 이상 의 버 전에 서 는 안 될 것 같 습 니 다.마지막 으로 하 나 를 찾 았 습 니 다.코드 는 상당히 복잡 해서 사용 하기 가 쉽 지 않 습 니 다.마지막 으로 답답 해서 어 쩔 수 없 었 습 니 다.자 료 를 찾 아 보 았 습 니 다.자신 이 쓴 것 은 다음 과 같 습 니 다.주요 한 이해 의 몇 가지 점 입 니 다.1.Firefox 라 는 브 라 우 저 는 안전 을 고려 하여 복사 하지 못 하 게 합 니 다.2.Flash 에 서 는 System.setClipboard()를 사용 하여 클립보드 에 내용 을 던 진 다음 에 FLASH 를 Firefox 에서 작업 할 수 있 습 니 다.3.Flash 플레이어 10.0 이후 에 도 안전 을 고려 하여 System.setClipboard 의 내용 은 FLASH 에 있어 야 합 니 다.4.External Interface 로 JS 와 통신 할 수 있 습 니 다.5.External Interface 는 flash 8 에서 인용 해 야 합 니 다.기본 HTML 코드:
 
<input type="text" id="testInput" name="testInput" value="4234324234" />
<div id="buttonBox">
<button onclick="copy('testInput')">copy</button>
</div>
따라서 디자인 할 때 첫 번 째 판단 을 하고 IE 라면 기본 코드 를 사용 합 니 다.그러면 가장 문제 가 없습니다.그렇지 않 으 면 FLASH 로 기본 단 추 를 덮어 씁 니 다
 
if (window.XMLHttpRequest){// IE , FLASH
$('buttonBox').innerHTML = '<embed src="flashCopy.swf" width="48"
height="23" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash"></embed>';
}
다음은 모든 JS 파일 입 니 다
 
<script>
function $(id){
return document.getElementById(id);
}
function copy(){//ie6
var value = $('testInput').value;
window.clipboardData.clearData();
window.clipboardData.setData("Text", value);
alert(' !');
}
function flashCopy(){//firefox .......
return $('testInput').value;
}
function flashCopyBack(){
alert(' !');
}
if("v" != "v"){// IE , FLASH
$('buttonBox').innerHTML = '<embed src="111.swf" width="48" height="23" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>';
}
</script>
FLASH 버튼 의 코드 는 다음 과 같 습 니 다
 
on (release) {
import flash.external.ExternalInterface;
var inputText = ExternalInterface.call('flashCopy');
System.setClipboard(inputText);
ExternalInterface.call('flashCopyBack');
//_root.boboText.text = inputText;
}
원 리 는 그 안전 상의 제한 을 피 하 는 것 입 니 다.FLASH 의 단 추 를 누 를 때 FLASH 의 코드 를 통 해 페이지 의 JS 코드 를 조정 하 는 것 입 니 다.JS 코드 는 INPUT 의 값 을 얻 을 수 있 습 니 다.그리고 FLASH 에 전 달 됩 니 다.이때 FLASH 에 이러한 값 이 있 습 니 다.그리고...FLASH 는 스스로 System.setClipboard 를 통 해 이 값 을 클립보드 에 저장 합 니 다.그 다음 에 그 는 페이지 에 있 는 flashCopyBack 을 호출 했 습 니 다.flashCopyBack 은 한 가지 일 만 했 습 니 다.바로 복사 가 성공 했다 는 것 을 알 리 는 것 입 니 다!저 는 Firefox,chrome,ie 에서 모두 테스트 했 습 니 다.문제 가 없습니다.만약 에 누가 문제 가 있다 는 것 을 발견 하면 저 에 게 알려 주세요.감사합니다. 왜냐하면 저 는 지금 이미 사용 하기 시 작 했 기 때 문 입 니 다!전재 출처:다람쥐

좋은 웹페이지 즐겨찾기