粘贴键盘快捷键后调用JS函数?

时间:2013-06-24 19:52:59

标签: javascript function onkeyup

我正在尝试编写一个简单的脚本,它将获取我需要保存的URL列表,将它们附加到数组中,然后将该数组吐出到div中。我遇到的问题是我使用“.onKeyUp”来调用该函数。它工作,但当我使用ctrl + v粘贴时,该函数被调用两次。一旦你释放字母v,一旦释放控制权。我如何修复它,以便它只在我使用键盘快捷键时调用该函数一次?这是我的代码:

<script type="text/javascript">
    var arr = new Array();
    function procession() {
        var urlin = document.getElementById('url').value;
        var smacky = "<br/> the url is:    " + urlin + "<br/> the url is:    www." + urlin;
        arr.push(smacky);
        document.getElementById('list').innerHTML = arr;
    }
</script>


<form>
    <input onkeyup="procession();" type="text" size="50" id="url"/>
</form>
<div id="list"></div>

重要说明:这是一个很长的故事,但我不能在这个脚本中使用jQuery。有没有办法在纯粹的JavaScript中做到这一点?

2 个答案:

答案 0 :(得分:2)

event传递给onKeyUp,如果密钥为ctrl,则返回false。这只会为快捷方式注册一个keyup事件:

<input onkeyup="procession(event);" type="text" size="50" id="url"/>

JS:

function procession(e) {
    //if ctrl key, return false
    if (e.which == 17) return false;

    //do stuff
    var urlin = document.getElementById('url').value;
    var smacky = "<br/> the url is:    " + urlin + "<br/> the url is:    www." + urlin;
    arr.push(smacky);
    document.getElementById('list').innerHTML = arr;
}

这是一个小小的黑客,但它应该完成工作。

答案 1 :(得分:1)

这里:

$(document).on("paste", function(event) {
  alert("paste!");
});