大概写了个var msg="点浏览器的工具栏刷新";
document.onkeydown=function(e)
{
  e=e||event;
  if(e.keyCode==116)msg="F5刷新";
  else if(e.ctrlKey&&e.keyCode==82)msg="Ctrl+R刷新";
}
document.onclick=function(e)
{
  e=e||event;obj=e.srcElement||e.target;
  if(e.tagName=="A"&&e.href)msg="";
}
window.onbeforeunload=function()
{
  if(msg!="")alert(msg);
}
document.oncontextmenu=function(){return false;}

解决方案 »

  1.   

    e=e||event;什么意思?
    obj=e.srcElement||e.target;这个没用到吗?
      

  2.   

    简单解释一下1楼的代码window.onbeforeunload捕获页面卸载事件,有可能F5刷新,Ctrl+R刷新,鼠标右键点刷新,或者点击链接跳转时触发楼主只希望刷新的时候执行js,所以1楼通过
    document.onkeydown=function(e)
    {
      e=e||event;
      if(e.keyCode==116)msg="F5刷新";
      else if(e.ctrlKey&&e.keyCode==82)msg="Ctrl+R刷新";
    }
    判断如果是F5或者Ctrl+R,就给标志位(这里是msg)写了点什么
    如果是点击了链接
    document.onclick=function(e)
    {
      e=e||event;obj=e.srcElement||e.target;
      if(e.tagName=="A"&&e.href)msg="";
    }
    则把标志为(msg)清空
    然后在onbeforeunload时
    window.onbeforeunload=function()
    {
      if(msg!="")alert(msg);
    }
    判断标志位,如果不为空,则alert。现在的问题是:alert后应当return false;否则仍然会跳转
    alert(msg)可以替换为LZ想要的代码对于鼠标右键点刷新得情况,1楼直接屏蔽掉了右键菜单是实上,通过window.location=window.location,还是达到刷新的目的