在Opera 11及更低版本中粘贴事件无法正常运行

时间:2013-03-12 17:37:21

标签: javascript jquery opera paste

我正在尝试这个简单的代码,当第一个检测到右键时,它应该将焦点移动到另一个文本框,这样任何后续的paste事件都会将文本粘贴到第二个框:

<!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,如果是,则转移焦点 - 是的,我也这样做了,结果相同!)

1 个答案:

答案 0 :(得分:0)

作为替代解决方案......

$("#real").bind("contextmenu",function() {
    $("#paste").val($(this).val());
    $(this).val('');
});