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

但是我怎么在键盘检测到用户触发ctrl+v的时候获取复制的那个aaa的内容啊~ 求高手啊!

不用检测用户是否触发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;
}

追问

不行~ 还是报错!

追答

怎么可能呐,我在这边测试的可以啊,只是在火狐上时会弹出“来自“file://”的脚本请求增强的不安全的能力,可能会危及您计算机或数据的安全:
在您计算机上执行或安装软件

请在您确信此代码不带病毒或恶意程序的前提下允许脚本使用此能力。”
选择“是”就可以了,

你那边是弹出什么样的错误啊?

追问

没事了 还是很谢谢啊! 给你分···

温馨提示:内容为网友见解,仅供参考
无其他回答

我的世界的全部指令
详情请查看视频回答

我再表格中某个单元格放了一张图片,页面已经引用了js文件。
建议创建一个按钮来控制:<script src="https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.4.2\/jquery.js"><\/script> <div id="aaa">23<\/div> <div id="bbb">按钮<\/div> <script> ('#bbb').toggle(function(){ ('#aaa').hide()},function(){ ('#aaa').show()})<\/script> ...

相似回答