谷歌浏览器特定 - 这是一个内部使用的应用程序,不需要跨浏览器兼容性
见http://jsfiddle.net/spetnik/vpcyt4yv/
我有一个表,我试图允许将数据粘贴到该表中。我使单个单元格可以这样选择:
<td tabindex="0">
我最初尝试将 onpaste 事件添加到 TD 元素本身,但这根本不起作用。因此,我将事件添加到 table 元素并检查以确保焦点元素是 TD,然后将数据粘贴到该元素:
document.getElementById("tblData").onpaste = function(evt){
if(document.querySelector(":focus").tagName.toLowerCase() != "td"){
return;
}
document.querySelector(":focus").innerText = evt.clipboardData.getData("text/plain");
};
虽然这确实有效,但该事件通常不会在第一次尝试时触发。看来我需要a)在表格中随机单击次数(每次都不同)或b)将焦点更改为另一个窗口,然后在事件触发之前再次返回。在 jsFiddle 中,我在事件的最开始添加了一个 console.log() 调用,这样我就可以在调试窗格中准确地看到事件何时触发。
请参阅上面的 jsFiddle 或只是https://jsfiddle.net/spetnik/vpcyt4yv/embedded/result/的结果