当按下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(); } });
小提琴
- Firebug分析问题:“没有活动要分析”
- Javascript调整Firefox弹出窗口的大小?
- $(window).scroll(function()不能在firefox上运行?
- jqGrid标题宽度与数据列宽度不同
- 使用xhrFields时的状态代码= 0:{withCredentials:true}在使用Firefox的jQuery $ ajax调用中
- 为什么中间点击在几种情况下不会触发“点击”?
- 如何使用JQuery AJAX阻止Firefox使用HTTP Basic Auth提示用户名/密码?
- jQuery.css():Firefox不返回’auto’值
- jQuery find()在Google Chrome中返回一个空字符串