Javascript 未捕获类型错误:无法读取属性';getData';未定义的

Javascript 未捕获类型错误:无法读取属性';getData';未定义的,javascript,jquery,Javascript,Jquery,我正在尝试处理粘贴事件并尝试将富格文本转换为纯文本,我在一个id为main $("#main").on("paste","div",function(event){ event.preventDefault(); var clipboarddata = event.clipboardData ||window.clipboardData || event.originalEvent.clipboardData; var onlytext = cl

我正在尝试处理粘贴事件并尝试将富格文本转换为纯文本,我在一个id为
main

$("#main").on("paste","div",function(event){
  event.preventDefault();
  var clipboarddata =  event.clipboardData ||window.clipboardData || event.originalEvent.clipboardData;                  
  var onlytext = clipboarddata.getData('text/plain');
  document.execCommand("insertHTML", false, onlytext);
});
未捕获的TypeError:无法读取未定义的属性“getData”

我想
事件。剪贴板数据
不工作,我的浏览器支持剪贴板API。我正在复制文本并将其粘贴到div中。所以剪贴板应该有一些价值


有人能解释一下为什么我的剪贴簿数据没有定义吗?

,因为最新的浏览器Chrome在下面一行就可以了

var clipboarddata = window.event.clipboardData.getData('text');
$(文档).ready(函数(){
$(“#主”)。在(“粘贴”上,函数(事件){
event.preventDefault();
var clipboarddata=window.event.clipboarddata.getData('text');
console.log(“粘贴值”+剪贴板数据);
$(“#粘贴数据”).text(剪贴板数据);
});
});

粘贴值:
注意:这就是出现错误的原因。修复错误是另一回事,需要您提供更多信息。

出现错误的原因是,在变量赋值中使用OR运算符时,它始终会赋值最后一个运算符的值,即使它是
null
false
未定义

基本上是这样的

if (event.clipboardData != null/false/undefined) { //ignore the incorrectness of the truncation
  var clipboarddata = event.clipboardData;
} else if (window.clipboardData != null/false/undefined) {
  var clipboarddata = window.clipboardData;
} else { //default to the last option even if it is null/false/undefined
  var clipboarddata = event.originalEvent.clipboardData;
}

因此,由于这三个变量都是
未定义的
,因此您将获得
event.originalEvent.clipboardData
的值,该值被
未定义
分配给变量。因此,下一行出现了错误。

请注意,在
event.originalEvent.clipboarddata
中,“data”中的“d”应该是“d”。@pointy是的,我更正了它,但仍然是相同的错误OK,好吧,请理解安全考虑可能会阻止代码访问剪贴板数据。您的代码在假设数据可以使用之前,应该检查以确保有数据。@指出任何解决方案是的。检查该值以确保未定义该值。如果浏览器不给你数据,你就无法强迫它。不,它不会。Firefox没有
window.event
,即使有
event.clipboardData
也不总是可用的。你的代码基本上就是OP已经拥有的代码。你能告诉你的浏览器版本我的版本是55.0.2883.95(64位),它工作得非常好,你能告诉我确切的代码和错误吗,这样我就可以在我的机器上试一下了Thanks主板可以在本地主机上访问,但在真实的站点或应用程序上,javascript不允许访问剪贴板。它所指的“安全设置”是指在web浏览器中执行的javascript无权访问您的剪贴板。什么是javascript无权访问您的剪贴板,javascript在本地计算机中运行(单个浏览器,并且可以访问剪贴板数据)上面的代码片段工作正常,请尝试运行它。是的,你是正确的,但为什么我没有定义,我复制文本,所以剪贴板应该提供一个有效的value@beginner-OP中没有足够的信息来给出答案。
console.log
您的各种输出和变量,查看这些信息以找出其中断的位置。删除e在所有操作和控制台上释放侦听器。记录这些操作和控制台。备份事件链,直到找到错误。