Javascript 要使onpaste工作,需要在窗口内单击
其思想是在页面级别处理粘贴事件(与在单个输入字段/元素级别处理它相反)。解决方案是将粘贴事件处理程序绑定到顶级div元素 问题在于,在开始触发粘贴事件之前,用户必须在页面第一次加载后(即使浏览器窗口本身处于焦点位置),首先实际单击浏览器窗口中的任何位置 问题是:如何使页面对粘贴敏感而无需此步骤(即必须在窗口内单击)? 我尝试过但不起作用的技术:Javascript 要使onpaste工作,需要在窗口内单击,javascript,html,javascript-events,dynamic-html,Javascript,Html,Javascript Events,Dynamic Html,其思想是在页面级别处理粘贴事件(与在单个输入字段/元素级别处理它相反)。解决方案是将粘贴事件处理程序绑定到顶级div元素 问题在于,在开始触发粘贴事件之前,用户必须在页面第一次加载后(即使浏览器窗口本身处于焦点位置),首先实际单击浏览器窗口中的任何位置 问题是:如何使页面对粘贴敏感而无需此步骤(即必须在窗口内单击)? 我尝试过但不起作用的技术: 在加载时以编程方式集中外部div(参见下面的js代码) 在加载时以编程方式单击外部div(参见下面的js代码) 注意:我的实际项目是一个相当复杂的有
- 在加载时以编程方式集中外部div(参见下面的js代码)
- 在加载时以编程方式单击外部div(参见下面的js代码)
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>paste test</title>
<style type="text/css">
html, body {
padding: 0;
margin: 0;
height: 100%;
}
div#outer {
margin: auto;
height: 100%;
padding: 20px;
background-color: whitesmoke;
box-sizing: border-box;
}
div#inner {
margin: auto;
margin-top: 20px;
padding: 20px;
width: 500px;
height: 500px;
border: solid 3px green;
}
</style>
</head>
<body onload="load()">
<div id="outer" onpaste="paste()" tabindex="1">
First click anywhere to make the paste work.
<div id="inner">
Just any content.
Not important for example.
</div>
</div>
<script type="text/javascript">
function load() {
document.getElementById('outer').focus();
document.getElementById('outer').click();
}
function paste() {
alert('paste');
}
</script>
</body>
</html>
粘贴试验
html,正文{
填充:0;
保证金:0;
身高:100%;
}
外分区{
保证金:自动;
身高:100%;
填充:20px;
背景色:白烟;
框大小:边框框;
}
内分区{
保证金:自动;
边缘顶部:20px;
填充:20px;
宽度:500px;
高度:500px;
边框:实心3px绿色;
}
首先单击任意位置使粘贴生效。
任何内容都可以。
例如,这并不重要。
函数加载(){
document.getElementById('outer').focus();
document.getElementById('outer')。单击();
}
函数粘贴(){
警报(“粘贴”);
}
嗨!你能解决这个问题吗?我现在也有同样的毛病。嗨!你能解决这个问题吗?我现在也有同样的问题。