본문 바로가기
PROGRAM/Script Language

버튼 클릭으로 원하는 내용을 복사해보자.

by ojava 2011. 7. 6.
반응형

버튼 클릭으로 ~~~ 해보자 시리즈가 되었네요!
딱히 의도하지는 않았는데....
무튼 찾으면 여기저기 나오는 코드들인데
이를 조합해서 만들어봤습니다. Textarea에 적용되는 코드들이
많았는데 이 코드는 input box에 적용했으니 역시 되지 않을까요?


/**

 * URL 복사를 위한 javascript

 * @author HyeYoungOh

 */

function URLcopy(which){


if (window.clipboardData) {

var target_data=eval("document."+which);

target_data.select();

zone=target_data.createTextRange();

zone.execCommand("copy");

   alert("주소가 복사되었습니다. 붙여넣기 하시면 됩니다.");

} else {

       try { 

            netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 

            var clipboard = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); 

            var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); 

                    trans.addDataFlavor("text/unicode"); 

                     

            var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); 

            str.data = "document."+which; 

            trans.setTransferData("text/unicode", str , text.length*2); 

            clipboard.setData(trans, null, Components.interfaces.nsIClipboard.kGlobalClipboard); 

            alert('소스가 클립보드에 복사되었습니다.'); 

        } catch(e) { 

            alert("브라우저가 클립보드 사용을 지원하지 않습니다. \n 옆의 내용을 드래그하여 복사해주세요."); 

        }

}



위의 자바스크립트 함수명을 버튼 또는 이미지에 적용시키면 사용하실 수 있습니당.

이 내용은 IE에서 원활하게 돌아갑니다.
TEST 결과 크롬과 FF에서는 try, catch에 걸리네요 ㅠ_ㅠ
브라우저가 클립보드 사용을 지원하지 않는다니....
조금 더 찾아보고 크로스브라우징 지원되는 코드로 업데이트 하겠습니다.





2011.07 오혜영 작성 
반응형