事实证明,我能够回答我自己的问题。这对我来说有点 RTFM,但如果它有助于其他人在 SO 上找到它,这里是我找到它的地方:
https://developer.mozilla.org/en/Using_the_Clipboard
这是我使用的完整代码。它已经过测试并在 FF 3.5 中运行。它在 IE 中不起作用,但测试 IE 并添加对该浏览器的支持应该很简单。不太确定 Chrome、Opera、Safari 等。请记住,您必须在 Firefox 中启用剪贴板访问,否则它将无法工作。因此,它可能不适合公共网站:
try {
netscape.security.PrivilegeManager
.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("You need to enable clipboard access in FireFox");
return false;
}
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
if (!clip) return false;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if (!trans) return false;
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);
if (str) pastetext = str.data.substring(0, strLength.value / 2);
return pastetext;