2

保存する必要がある URL のリストを取得し、それらを配列に追加してから、その配列を div に吐き出す簡単なスクリプトを作成しようとしています。私が抱えている問題は、「.onKeyUp」を使用して関数を呼び出すことです。動作しますが、ctrl + v を使用して貼り付けると、関数が 2 回呼び出されます。文字 v を離したときに 1 回、コントロールを離したときに 1 回。キーボード ショートカットを使用しているときに関数が 1 回だけ呼び出されるように修正するにはどうすればよいですか? これが私のコードです:

<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キーが の場合はctrlfalse を返します。これにより、ショートカットの keyup イベントが 1 つだけ登録されます。

<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;
}

少しハックっぽいですが、仕事を成し遂げるはずです。

于 2013-06-24T20:02:17.347 に答える
1

ここ:

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