1
如何使用XPCOM将剪贴板文本分配给本地变量。我只需要在Firefox中工作。请建议我使用任何插件或事件。我用Google搜索了一下,但无法找到符合我要求的文章。我听到一些关于使用Firefox API将剪贴板数据分配到本地变量
nsIClipboardCommands
但需要帮助如何使用它..我可以在网页中使用这种方法吗?
如何使用XPCOM将剪贴板文本分配给本地变量。我只需要在Firefox中工作。请建议我使用任何插件或事件。我用Google搜索了一下,但无法找到符合我要求的文章。我听到一些关于使用Firefox API将剪贴板数据分配到本地变量
nsIClipboardCommands
但需要帮助如何使用它..我可以在网页中使用这种方法吗?
也许你可以使用zeroclipboard实现this.Or您可以使用这些代码:
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("please goto ’about:config’\n and set ’signed.applets.codebase_principal_support’ to ’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);
}
return true;
}
看到这个:Using the Clipboard
我可以在网页的代码??? – Exception
@ user1008575:不,只在Firefox扩展中。如果用户改变他的偏好,它可能在网页上工作 - 但暂时的,这个功能很快就会被移除。 –