更改浏览器url时是否存在Javascript键控限制?
我试图用javascript添加一个按键事件来刷新页面。但它没有起作用。同样的代码在按钮点击事件上也能完美地工作。如何使用keydown事件实现重新加载页面?该页面需要使用GET加载,即使该页面第一次使用POST加载,因此window.location.reload()不起作用 这个问题发生在FF 4上。我还没有尝试过其他浏览器 不起作用的代码是:更改浏览器url时是否存在Javascript键控限制?,javascript,jquery,keydown,Javascript,Jquery,Keydown,我试图用javascript添加一个按键事件来刷新页面。但它没有起作用。同样的代码在按钮点击事件上也能完美地工作。如何使用keydown事件实现重新加载页面?该页面需要使用GET加载,即使该页面第一次使用POST加载,因此window.location.reload()不起作用 这个问题发生在FF 4上。我还没有尝试过其他浏览器 不起作用的代码是: $(document).keydown(function(e) { if (e.keyCode == 27) { window.
$(document).keydown(function(e) {
if (e.keyCode == 27) {
window.location.href = document.URL;
}
});
此代码非常有效:
$('.my-button-class').click(function(){
window.location.href = document.URL;
});
尝试使用“e.which”而不是“e.keyCode”。浏览器在这个问题上各不相同,但jQuery确保可以可靠地使用“which”来获取关键代码
编辑-Firefox 4看起来确实很有趣,但您可以通过在新事件中重新加载页面来解决此问题:
$(document).keydown(function(e) {
if (e.keyCode == 27) {
setTimeout(function() {
window.location.href = document.URL;
}, 1);
}
});
尝试使用“e.which”而不是“e.keyCode”。浏览器在这个问题上各不相同,但jQuery确保可以可靠地使用“which”来获取关键代码
编辑-Firefox 4看起来确实很有趣,但您可以通过在新事件中重新加载页面来解决此问题:
$(document).keydown(function(e) {
if (e.keyCode == 27) {
setTimeout(function() {
window.location.href = document.URL;
}, 1);
}
});
你的代码没有任何问题。在这把小提琴上试一试: 或者,您可以尝试
哪个。下面的代码应该告诉你哪一个适合你
$(document).keydown(function(e) {
if (e.keyCode == 13) {
alert('keyCode')
window.location.href = document.URL;
return true;
}
if (e.which == 13) {
alert('which');
window.location.href = document.URL;
}
});
编辑:您需要在JSFIDLE页面中点击“回车”来测试此代码。确保在“结果”窗格中按enter键
此外,正如@Pointy所指出的(并非双关语),这是一种保证做到这一点的方法。上面的代码只是帮助您找到问题所在 您的代码没有任何问题。在这把小提琴上试一试:
或者,您可以尝试哪个。下面的代码应该告诉你哪一个适合你
$(document).keydown(function(e) {
if (e.keyCode == 13) {
alert('keyCode')
window.location.href = document.URL;
return true;
}
if (e.which == 13) {
alert('which');
window.location.href = document.URL;
}
});
编辑:您需要在JSFIDLE页面中点击“回车”来测试此代码。确保在“结果”窗格中按enter键
此外,正如@Pointy所指出的(并非双关语),这是一种保证做到这一点的方法。上面的代码只是帮助您找到问题所在 可能会帮助您:
document.onkeydown = onKeyDown;
function onKeyDown(){
if(event.keyCode == 13) location = "http://url.com"
}
可以帮助您:
document.onkeydown = onKeyDown;
function onKeyDown(){
if(event.keyCode == 13) location = "http://url.com"
}
简单地说,使用e,而不是:
$(document).keydown(function(e) {
if (e.which == 27) {
window.location.href = document.URL;
}
});
简单地说,使用e,而不是:
$(document).keydown(function(e) {
if (e.which == 27) {
window.location.href = document.URL;
}
});
我刚刚用chrome试用过,它很管用。你用的是什么浏览器?我用的是FF4。在我的问题中添加了浏览器,本来应该这样做的:)我刚刚用chrome试用过,它可以工作了。你用的是什么浏览器?我用的是FF4。将浏览器添加到我的问题中,首先应该这样做:)jQuery确保“which”始终是关键代码;根本不需要尝试“keyCode”属性。@Pointy我同意,我自己从未使用过keyCode。这段代码只是帮助我们调试他的问题,让我们知道这是一个浏览器问题,还是他的JS事先失败了。是的,很公平。我想,这也会确切地说明为什么它对OP不起作用。我正确地抓住了关键。问题是浏览器没有刷新页面。但thanx,这可能对其他浏览器很有用。@MadSysop啊,好的,我明白你的意思了。将刷新更改为window.location.href=window.location.href代码>对我来说很好。jQuery确保“which”始终是关键代码;根本不需要尝试“keyCode”属性。@Pointy我同意,我自己从未使用过keyCode。这段代码只是帮助我们调试他的问题,让我们知道这是一个浏览器问题,还是他的JS事先失败了。是的,很公平。我想,这也会确切地说明为什么它对OP不起作用。我正确地抓住了关键。问题是浏览器没有刷新页面。但thanx,这可能对其他浏览器很有用。@MadSysop啊,好的,我明白你的意思了。将刷新更改为window.location.href=window.location.href代码>对我来说很好。我正确地抓住了钥匙。问题是浏览器没有刷新页面。但是thanx,这可能对其他浏览器很有用。@MadSysop好的,我想我找到了一个解决方法-我会更新我的答案。顺便说一句,你可以使用0作为setTimeout参数。不需要1毫秒的停顿:我知道,但这是一个老习惯:-)很高兴它奏效了!这是一个我通常存钱的把戏。问题是浏览器没有刷新页面。但是thanx,这可能对其他浏览器很有用。@MadSysop好的,我想我找到了一个解决方法-我会更新我的答案。顺便说一句,你可以使用0作为setTimeout参数。不需要1毫秒的停顿:我知道,但这是一个老习惯:-)很高兴它奏效了!这是一个我通常存钱的把戏。问题是浏览器没有刷新页面。但是thanx,这可能对其他浏览器很有用。只是注意到您添加了FF4作为问题。今天早上我会查一下我的密码。我没弄错钥匙。问题是浏览器没有刷新页面。但是thanx,这可能对其他浏览器很有用。只是注意到您添加了FF4作为问题。我会在今天早上查我的密码。