JavaScript:用户退出网站时发出警报?

时间:2009-11-19 15:40:32

标签: javascript alert

如果客户试图通过购物车中的商品退出网站,我的老板希望我们的网站显示提醒。

当用户尝试退出我们的网站时,如何显示提醒?此外,如果他们只是导航到我们网站上的其他页面,我也不想显示警报,但前提是他们完全离开我们的网站。

P.S。我没有使用任何框架。

2 个答案:

答案 0 :(得分:3)

没有简单的方法来检测离开域名。您可以使用onBeforeUnload事件轻松检测到离开页面,但离开整个域并不是那么简单。正如建议的here,你可以通过实现一个加载iframe中所有页面的主页面来实现这一点......

答案 1 :(得分:0)

虽然您可以使用onbeforeunload事件来确定该网页是否正在尝试离开该网站,但即使它位于您自己的网站上,也无法获取该网页的新网址,因为这是违反安全规定的行为。

我能想到的唯一解决方法是在另一篇文章中建议使用iframe或完整框架,但这会使URL难以保持静态,从而阻止书签。

E.g:

frame.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <script language='JavaScript' type='text/javascript'>
      window.onbeforeunload = function (evt) {
        return "This is a demonstration that you are leaving me";
      }
    </script>

    <frameset border='0' rows="*">
      <frame src='test_page.htm' border=0 scrolling=no frameborder=0 noresize name=top>
    </frameset>
  </body>
</html>

E.g。测试页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
  </head>
  <body>
    Hello World
    <p>
    <a href='javascript:top.location.href="http://www.google.com"'> Outside link Google</a>
    </p>
    <p>
    <a href='http://www.google.com'> Inside frame link to Google</a>
    </p>
  </body>
</html>

这允许您导航到帧内或帧外的链接(仅作为同一目的地的示例)。但是,只有当您到户外或关闭浏览器时,才会询问您是否要这样做?