问题已经找到了, 主要是在聚集在 mainframe 里时点击X得到的 event.clientX 是相对于 mainframe 窗口左顶点的数值, 而不是相对于整个框架页面的, 所以得到的值是整个框架页的宽减去左框架 leftframe 的宽, 稍等, 我在想想

解决方案 »

  1.   

    适用于框架网页的关闭提示
    <script language="javascript">
    function window.onbeforeunload()  //author: meizz
    {
      var n = window.event.screenX - window.screenLeft;
      var b = n > document.documentElement.scrollWidth-20;
      if(b && window.event.clientY < 0 || window.event.altKey)
      {
        window.event.returnValue = "";  //这里可以放置你想做的操作代码
      }
    }
    </script>
      

  2.   

    onbeforeunload 在页面刷新与关闭时都会被触发, 所以我就加个判断, 判断是刷新还是关闭
    我判断的条件是用户的点击位置 或者 alt+F4 方式里的 alt 键.本来用 event.clientX 可以判断鼠标在网页里点击的确切坐标 , 可是在框架页面里通过这个得到是相对于当前活动窗口的坐标, 而非相对于整个框架页面的坐标. 因此我使用了另外几个属性来判断, event.screenX 是鼠标在屏幕上点击的坐标, window.screenLeft 是网页在屏幕上的左上点坐标, 两者相减即得出鼠标点击的坐标相对于页面左上的相对值. 即达到了判断的条件