当按下ESC时,当我在keyDown事件处理程序中使用它时,location.reload不会重新加载页面。 只在FF
我发现当按下ESC按钮时,当我从keyDown事件处理程序调用它时,location.reload()调用没有做任何事情。 有没有人知道如何重新加载页面的一些解决方法? 另外我找到了http://bugs.jqueryui.com/ticket/4922 ,看起来这个问题已经解决了。 这是一个代码示例。 订阅活动:
jQuery(document).keydown(function (event) { if (event.keyCode == 27) { closeVideoPopup(); } });
而closeVideoPopup()方法:
function closeVideoPopup() { jQuery('#fade, .window_container').fadeOut(function(){ jQuery('#fade, a.close').remove(); }); jQuery('ul.tabs').css('z-index', '99'); jQuery('div.framing_slider').css('z-index', '9999'); location.reload(); return false;
}
请注意,此代码适用于除FF以外的所有浏览器 。
这是因为Esc键在Firefox中触发后会立即停止刷新。
使用setTimeout
以便在事件完成冒泡后执行location.reload()
。
jQuery(document).keydown(function (event) { if (event.keyCode == 27) { setTimeout(closeVideoPopup, 0); } });
小提琴
或者更好,只需调用event.preventDefault()
以便Esc键不会取消页面重新加载:
jQuery(document).keydown(function (event) { if (event.keyCode == 27) { event.preventDefault(); closeVideoPopup(); } });
小提琴
- jQuery.getJSON可以将域名的cookie放在它所做的请求的标题中吗?
- jquery的mouseover / out函数仅在Firefox中的click-event之后有效
- Firefox jquery scrollTo flicker bug
- Jquery代码在Chrome中运行但在Firefox中不运行
- 通过浏览器扩展添加表值
- Firefox中的Jquery没有正确报告border-bottom-width属性
- 记录了Firefox / jQuery / CSS动画的错误?
- Firefox上的JavaScript TinyMCE / jQuery竞争条件
- 在Firefox中使用JavaScript捕获Tab键