IE와 Firefox는 JavaScript를 지원하여 클립보드에 콘텐츠를 쓸 수 있습니다. IE는 클립보드 콘텐츠에 명령을 쓰는 것을 쉽게 지원할 수 있습니다. execCommand() 또는 window.clipboardData를 사용할 수 있습니다.
execCommand를 사용하려면 먼저 다음 코드와 같이 페이지에서 클립보드에 복사할 콘텐츠를 선택해야 합니다.
var doc = obj.createTextRange()
doc.select()
doc.execCommand(' copy');
window.clipboardData를 사용하는 방법은 다음과 같습니다. Firefox에서 클립보드에 쓰기 기능도 구현합니다.
if(window.clipboardData) //IE
{
window.clipboardData.clearData ();
window.clipboardData.setData("Text", txt);
}
else if (window.netscape)
{
try { netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect");
}
catch (e)
{
alert("'about:config'를 방문하여 signed.applets.codebase_principal_support를 'true'로 설정하세요."); //사용자에게 브라우저의 보안 설정을 열라는 메시지 표시
}
varclip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard) ;
if (!clip)
return;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); if (!trans)
return;
trans.addDataFlavor ('text/unicode')
var str = new Object()
var len = new Object(); str = Components.classes["@mozilla.org/supports-string; 1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data =
trans; .setTransferData("text/unicode",str,copytext.length*2 );
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return; trans,null,clipid.kGlobalClipboard);
}
위 코드는 IE 및 Firefox에서 클립보드에 사용자 정의 콘텐츠를 쓸 수 있지만 Opera 및 WebKit 커널 브라우저는 보안 요구 사항이 더 높으므로 그렇지 않습니다. JavaScript로 클립보드 내용을 직접 조작하는 방식을 지원하면 다른 스크립트 언어를 통해서만 "국가를 구할" 수 있습니다.
Opera, Safari, Chrome은 ActionScript를 사용하여 클립보드에 콘텐츠를 기록합니다.
특정 구현에서는 플렉스나 플래시를 사용하여 원본 이미지나 텍스트를 대체하여 원본 액션 버튼의 모양을 구현할 수 있습니다. 버튼을 클릭하면 다음 ActionScript 스크립트를 실행합니다.
//브라우저 환경에서 클립보드에 써야 하는 내용을 가져옵니다.
var s:String = String (ExternalInterface.call ("getURL4Clipboard")); //getURL4Clipboard는 페이지의 클립보드 내용을 반환하는 자바스크립트 메소드입니다
//클립보드 내용 설정
System.setClipboard(s) ;
//사용자 정보 프롬프트 등 클립보드 내용을 설정한 후 계속해야 하는 JavaScript 함수를 호출합니다.
ExternalInterface.call("copyURLCompleted") //copyURLCompleted 페이지의 자바스크립트 방식이므로 복사 작업을 계속 실행하세요.