http://www.krikkit.net/howto_javascript_copy_clipboard.html 에서 퍼왔습니다.
핀란드어인지 -_-;; 주석이 쓸모가 없는게 좀 아쉽군요..
<script language="javascript" type="text/javascript"><!--
function copy_clip(meintext) {
if (window.clipboardData) { // IE일 경우
window.clipboardData.setData("Text", meintext);
} else if (window.netscape) { // NS일 경우
// you have to sign the code to enable this, or see notes below
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
// maak een interface naar het clipboard
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
// maak een transferable
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
// specificeer wat voor soort data we op willen halen; text in dit geval
trans.addDataFlavor('text/unicode');
// om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig om het in op te slaan
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = meintext; // 로컬변수에 복사
str.data = copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clipid) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
alert("Following info was copied to your clipboard:\n\n" + meintext);
return false;
}
//-->
</script>
호출할때는 아래와 같이 쓰라고 하는군요.
<span onclick='return copy_clip("this is your personal text")'>
IE쪽은 window.clipboardData.setData 를 써서 간단히 해결하는데, NS쪽은 XPCOM을 호출하느라 좀 코드가 거시기하군요.. (파이어폭스에서 실행시켜보니 보안 경고창이 뜨면서.. 허락해야 코드가 동작합니다 -_-; ) 위와 비슷한 코드는 mozilla.org 의 클립보드 쪽에서도 찾을 수 있습니다.
기타 IE쪽에서 클립보드에 갖다 박는 방법이라면.. 아래와 같은 방법이 있겠습니다.
<script><!--
function setData ( obj ) {
var buf = document.getElementById('buf');
buf.value = obj.innerHTML;
var Range = buf.createTextRange ();
Range.execCommand ("Copy");
}
//--></script>
<span onclick=" setData (this) "> 가갸거겨고교구규그기 </span>
<!-- 버퍼로 사용될 숨겨진 textarea -->
<textarea id='buf' style='display: none;'>
숨겨진 textarea를 사용하여 내용을 복사한 다음, 선택영역 개체를 생성해서 Copy 명령을 실행시키는 예제입니다. 많이들 쓰시더군요.. (블로그의 PermaLink 카피쪽에서)
핀란드어인지 -_-;; 주석이 쓸모가 없는게 좀 아쉽군요..
<script language="javascript" type="text/javascript"><!--
function copy_clip(meintext) {
if (window.clipboardData) { // IE일 경우
window.clipboardData.setData("Text", meintext);
} else if (window.netscape) { // NS일 경우
// you have to sign the code to enable this, or see notes below
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
// maak een interface naar het clipboard
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;
// maak een transferable
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans) return;
// specificeer wat voor soort data we op willen halen; text in dit geval
trans.addDataFlavor('text/unicode');
// om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig om het in op te slaan
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = meintext; // 로컬변수에 복사
str.data = copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clipid) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
alert("Following info was copied to your clipboard:\n\n" + meintext);
return false;
}
//-->
</script>
호출할때는 아래와 같이 쓰라고 하는군요.
<span onclick='return copy_clip("this is your personal text")'>
IE쪽은 window.clipboardData.setData 를 써서 간단히 해결하는데, NS쪽은 XPCOM을 호출하느라 좀 코드가 거시기하군요.. (파이어폭스에서 실행시켜보니 보안 경고창이 뜨면서.. 허락해야 코드가 동작합니다 -_-; ) 위와 비슷한 코드는 mozilla.org 의 클립보드 쪽에서도 찾을 수 있습니다.
기타 IE쪽에서 클립보드에 갖다 박는 방법이라면.. 아래와 같은 방법이 있겠습니다.
<script><!--
function setData ( obj ) {
var buf = document.getElementById('buf');
buf.value = obj.innerHTML;
var Range = buf.createTextRange ();
Range.execCommand ("Copy");
}
//--></script>
<span onclick=" setData (this) "> 가갸거겨고교구규그기 </span>
<!-- 버퍼로 사용될 숨겨진 textarea -->
<textarea id='buf' style='display: none;'>
숨겨진 textarea를 사용하여 내용을 복사한 다음, 선택영역 개체를 생성해서 Copy 명령을 실행시키는 예제입니다. 많이들 쓰시더군요.. (블로그의 PermaLink 카피쪽에서)
'Web > Javascript' 카테고리의 다른 글
DOM 처리관련 오류 사항 (0) | 2013.09.26 |
---|---|
JS number_format function에서 처리하기 (0) | 2013.09.26 |
클립 보드로 복사 (0) | 2013.09.26 |
날짜 형식 검사 (0) | 2013.09.26 |
replace 주의점 (0) | 2013.09.26 |