By default, JavaScript is not allowed to read or set your clipboard data for security and privacy reasons. http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard
to:jiangsheng(蒋晟.Net[MVP]) 有关firefox下对剪贴板的限制,我也知道,不过,现在网上不是有这么一段代码嘛 function CopyToClipboard(meintext) { if (window.clipboardData) { // the IE-manier window.clipboardData.setData("Text", meintext); } else if (window.netscape) { // dit is belangrijk maar staat nergens duidelijk vermeld: // 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; //alert(clip); // 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 (!clip) return false; clip.setData(trans,null,clipid.kGlobalClipboard); } else { return false; } alert("Following info was copied to your clipboard: " + meintext); return false; }这段代码只可以复制文本,无法复制图片。按理说复制图片就是把类型转行一下,但是我对firefox下编程还不熟悉,看不懂XUL是怎么编程的,也不清楚他们之间是怎么调用的,很是郁闷。那位熟悉XUL的高手,告诉小弟一下吧,先谢了。 请参考: http://developer.mozilla.org/en/docs/Using_the_Clipboardhttp://xulplanet.com/tutorials/mozsdk/clipboard.php
{
var oControlRange = document.body.createControlRange();
oControlRange.add(imgid,0);
oControlRange.select();
document.execCommand("Copy");
}
感谢你提供的代码,但你的代码只可以在IE下运行,在firefox下却不能运行。
有关firefox下对剪贴板的限制,我也知道,不过,现在网上不是有这么一段代码嘛
function CopyToClipboard(meintext)
{
if (window.clipboardData)
{
// the IE-manier
window.clipboardData.setData("Text", meintext);
}
else if (window.netscape)
{
// dit is belangrijk maar staat nergens duidelijk vermeld:
// 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;
//alert(clip);
// 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 (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
else
{
return false;
} alert("Following info was copied to your clipboard: " + meintext);
return false;
}这段代码只可以复制文本,无法复制图片。按理说复制图片就是把类型转行一下,但是我对firefox下编程还不熟悉,看不懂XUL是怎么编程的,也不清楚他们之间是怎么调用的,很是郁闷。那位熟悉XUL的高手,告诉小弟一下吧,先谢了。
请参考:
http://developer.mozilla.org/en/docs/Using_the_Clipboardhttp://xulplanet.com/tutorials/mozsdk/clipboard.php