IE와 FF에서 모두 작동하는 클립보드
반응형
혹시나 필요한 사람있으면 마음대로 가져다 쓰셔도 됩니다.
인터넷에 돌아다니는 소스라서.. ㅎㅎ
인터넷에 돌아다니는 소스라서.. ㅎㅎ
// IE와 FF에서 모두 작동하는 클립보드 복사
// FF에서는 about:config 에 들어가 Signed.applets.codebase_principal_support 값을 true로 변경해야 함
function clip_copy(meintext) {
if (window.clipboardData) {
window.clipboardData.setData("Text", meintext);
} else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = 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();
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 (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
// IE와 FF에서 모두 작동하는 클립보드 붙여넣기
// FF에서는 about:config 에 들어가 Signed.applets.codebase_principal_support 값을 true로 변경해야 함
function clip_paste() {
var chec=document.board_write;
var clip_data;
if (window.clipboardData) {
clip_data = window.clipboardData.getData("Text"); // 클립보드 복사
} else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var clip = 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");
clip.getData(trans, clip.kGlobalClipboard);
var str = new Object();
var strLength = new Object();
trans.getTransferData("text/unicode", str, strLength);
if(str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
else return;
if(str) clip_data = str.data.substring(0, strLength.value / 2);
}
return clip_data;
}
// FF에서는 about:config 에 들어가 Signed.applets.codebase_principal_support 값을 true로 변경해야 함
function clip_copy(meintext) {
if (window.clipboardData) {
window.clipboardData.setData("Text", meintext);
} else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = 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();
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 (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
// IE와 FF에서 모두 작동하는 클립보드 붙여넣기
// FF에서는 about:config 에 들어가 Signed.applets.codebase_principal_support 값을 true로 변경해야 함
function clip_paste() {
var chec=document.board_write;
var clip_data;
if (window.clipboardData) {
clip_data = window.clipboardData.getData("Text"); // 클립보드 복사
} else if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var clip = 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");
clip.getData(trans, clip.kGlobalClipboard);
var str = new Object();
var strLength = new Object();
trans.getTransferData("text/unicode", str, strLength);
if(str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
else return;
if(str) clip_data = str.data.substring(0, strLength.value / 2);
}
return clip_data;
}
반응형
'IT Life > Programming' 카테고리의 다른 글
블로그 주소 변경시 유용한 스크립트 (5) | 2009.06.17 |
---|---|
filter:alpha(opacity=50) 을 IE8에서는 쓸 수 없다고? (5) | 2009.05.18 |
웹 표준과 크로스 브라우징 (0) | 2007.03.13 |