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