js获取ctrl+v 粘帖的内容啊~ 比如:我复制aaa,赋值到一个input中,粘帖的时候我用了键盘检测事件

但是我怎么在键盘检测到用户触发ctrl+v的时候获取复制的那个aaa的内容啊~求高手啊!... 但是我怎么在键盘检测到用户触发ctrl+v的时候获取复制的那个aaa的内容啊~ 求高手啊! 展开
 我来答
碎片知识杂货铺
2012-01-09 · 碎片知识杂货铺,仅供参考
碎片知识杂货铺
采纳数:458 获赞数:4216

向TA提问 私信TA
展开全部
不用检测用户是否触发Ctrl+V,只需要提取剪切板里面的内容,然后将其复制到你指定的标签里面即可。

如下代码是获取剪贴板的内容,将getClipboard() 返回值赋给你指定的标签即可:
/**************************************************

返回剪贴板的内容

**************************************************/
function getClipboard() {

if (window.clipboardData) {

return(window.clipboardData.getData('Text'));

}

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');

clip.getData(trans,clip.kGlobalClipboard);

var str = new Object();

var len = new Object();

try {
trans.getTransferData('text/unicode',str,len);
}
catch(error) {
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;
}
更多追问追答
追问
不行~  火狐下报错~ document.onkeydown = function(e){
var e = window.event ? window.event : e;
if(e.ctrlKey && e.keyCode == 86){
alert(getClipboard());
}
} 我调用了你那个方法·····弹不出来!
追答
火狐可能会阻止javascript运行,你设置为允许,用下面的代码

function getClipboard() {
if (window.clipboardData) {
return (window.clipboardData.getData('Text'));
}
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');
clip.getData(trans, clip.kGlobalClipboard);
var str = new Object();
var len = new Object();
try {
trans.getTransferData('text/unicode', str, len);
}
catch (error) {
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 readClipboardData() {
var str = getClipboard();
var len = str.split("\n");//获取行数
document.getElementById("txtContent").value = str;
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式