劫持刷新密钥

时间:2010-10-14 22:32:33

标签: javascript keyboard refresh

问题

如何使用自定义javascript函数覆盖刷新密钥?顺便说一下,我使用Prototype库。

为什么

我有一个带有用户评论的视频。有一个按钮只能通过JS函数updateComments()刷新注释。在一些用户测试期间,一些白痴拒绝使用该按钮来更新评论。相反,他们刷新了整个页面。这导致视频重新启动,这是不合需要的。我想覆盖F5键或CTRL + R来调用updateComments()而不是刷新页面。

2 个答案:

答案 0 :(得分:1)

您将无法禁用浏览器按钮,这将违背一般的UI体验。一种可能性是检查页面的加载方式,并向用户显示“请不要这样做以加载评论”。例如,在Google Chrome中,您可以检查该网页是否已重新加载:

if (chrome.loadTimes().navigationType === 'Reload') {
  alert('Please reload comments using the magic button');
}

我不确定其他浏览器是否有类似的功能可用,但我怀疑它会不会很多。

一般来说,我在这个例子中的建议是改变你加载评论的方式。例如,Twitter搜索将定期检查新推文,然后显示“显示X更多推文”按钮,用户可以按此按钮显示它们。

答案 1 :(得分:1)

我认为您可以做的最好的事情是为window.onbeforeunload事件添加处理程序。

这样的事情:

function beforeUnload() {
    if (videoIsPlaying) {
        return "Are you sure you want to stop the video?";
    }
}
window.onbeforeunload = beforeUnload;

查看示例herehere