我尝试了这个简单的代码,该代码在第一次检测到右键单击时应该将焦点移到另一个文本框,以便任何后续的paste
事件都会使文本被粘贴到第二个框中:粘贴事件在Opera 11和更低版本中无法正常工作
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#real").bind("contextmenu",function() {
$("#paste").focus();
});
});
</script>
</head>
<body>
<input type = 'text' sh = '0' right = '0' id = 'real' />
<input type = 'text' id = 'paste' />
<p>Dummy</p>
</html>
在Opera上面的版本12中,它工作正常。但是,在11和更低版本中,即使焦点移动到右键单击第一个文本框时,粘贴事件将粘贴第一个文本框中的文本(焦点将立即移到第二个文本框,拥有)。我试图用setTimeout(function() { $("#paste").focus(); },0);
替换代码,但错误依然存在。
谁能告诉我我该如何解决这个问题,以便将文本粘贴到第二个文本框中? (一检测mouseup
,检查它是否是一个正确的点击通过event.which
,如果是的话,转移焦点 - 是啊,我这样做太,一样的结果!)
待办事项你真的需要支持Opera 11吗?它快速消失。 – Bergi 2013-03-12 17:55:24
是的,老式的客户.. :( – SexyBeast 2013-03-12 17:56:04
我不明白你的要求的全部范围在这里。你想让它有可能输入到'真正'的盒子,但如果有东西被粘贴,它应该进入'paste'box?或者是否所有输入'real'都输入'paste'?为什么你首先有两个盒子? – hallvors 2013-03-18 15:02:59