获取剪切板的类容:
function getClipboard() {
if (window.clipboardData) {
return (window.clipboardData.getData('text'));
}
else {
if (window.netscape) {
try {
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 len = new Object();
trans.getTransferData("text/unicode", str, len);
}
catch (e) {
alert(" 您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将 signed.applets.codebase_principal_support'设置为true'之后重试,相对路径为firefox根目录 /greprefs/all.js");
return null;
}
if (str) {
if (Components.interfaces.nsISupportsWString) {
str = str.value.QueryInterface(Components.interfaces.nsISupportsWString);
}
else {
if (Components.interfaces.nsISupportsString) {
str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
}
else {
str = null;
}
}
}
if (str) {
return (str.data.substring(0, len.value / 2));
}
}
}
return null;
}
设置剪切板方法一:
function copy_clip(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);
}
// alert(" 下面的信息复制到剪贴板 :/n/n" + meintext);
return false;
}
设置剪切板方法二:
function copyToClipboard(txt) {
if (window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
} else if (navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("你使用的FF浏览器,复制功能被浏览器拒绝!/n请在浏览器地址栏输入'about:config'并回车/n然后将'signed.applets.codebase_principal_support'设置为'true'");
}
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 = txt;
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);
}
}
在asp.net页面的应用:
<script type="text/javascript">
document.body.oncopy = function() {
setTimeout(function() {
var text = getClipboard();
if (text) {
text = text + "/r/n本篇文章来源于:" + location.href;
copyToClipboard(text);
}
}, 100)
}
</script>