阅读:5301回复:1
JS实现和IE命令一样的复制!?
关键我是trans没用对啊,请路过的高手指点。
我的复制方法是: ———————————————————————————————————— copyToClipboard:function(txt){//FF 复制到剪切板 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; } var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); str.data = txt; trans.addDataFlavor("html Format"); trans.setTransferData("html",str,txt.length*2); var clipid = Components.interfaces.nsIClipboard; if (!clipid){ return; } clip.setData(trans,null,clipid.kGlobalClipboard); —————————————————————————————————— 上面的代码 向word里可以粘贴,而且可以继承文字样式。 向不支持html格式的其他软件里粘贴,“粘贴”选项不可用。 但是 在不支持html格式的记事本里也应该可以粘贴不带样式的文字啊。 以下是我收集的trans 都用了,没能用的。 trans.addDataFlavor("application/x-moz-file", "nsIFile"); trans.addDataFlavor("text/x-moz-url"); trans.addDataFlavor("application/x-moz-nativehtml"); trans.addDataFlavor("text/richtext"); trans.addDataFlavor("text/plain ") trans.addDataFlavor("text/html"); trans.addDataFlavor("html Format"); trans.addDataFlavor("text/unicode"); |
|
1楼#
发布于:2008-04-08 17:17
使用 Components.classes 只能在本地网页和扩展中生效。如果把网页放到服务器上就没有作用了。
Firefox 现在为了用户的安全禁止了操作剪贴板的函数。最好的办法是提示用户使用Ctrl+C吧。劝告别人改about:config解除禁止也不是很好。 |
|