2

我正在尝试编写一个简单的脚本,它将获取我需要保存的 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中做到这一点?

4

2 回答 2

2

传入event您的onKeyUp,如果键是 a 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;
}

这有点hack-ish,但它应该可以完成工作。

于 2013-06-24T20:02:17.347 回答
1

这里:

$(document).on("paste", function(event) {
  alert("paste!");
});
于 2013-06-24T19:56:23.573 回答