2011-01-26 98 views
0

嘿家伙,我正在向用户显示一个JavaScript对话框使用window.onbeforeunload来处理,如果用户点击后退按钮。 我的代码正在工作,但如果他们点击“离开此页面”(消息因不同浏览器而异),我正在努力重定向用户。检测,如果javascript对话框按钮单击并重定向

// Set check var false to begin with 
// This is set true on submit btns using onclick event 
submitFormOkay = false; 

// If we are on check-availability page 
if(window.location.href.indexOf('check-availability') != -1) 
{ 
    // If back button is clicked 
    window.onbeforeunload = function() 
    { 
      // Only show dialog if submit btn wasn't clicked 
      if (!submitFormOkay) 
      { 
       // Show dialog 
       return "Use of the browser back button will lose form data.\nPlease use the 'Previous' button at the bottom of the form."; 

       // If 'leave' this page was clicked' 
       // do 'window.location = window.location' 
      } 
    } 
} 

在此先感谢。

大卫

回答

0

如果他们点击“离开该页面”,那么浏览器将完成任何操作的用户试图执行对话框弹出之前。

但是,如果他们确实导航回来,他们仍然会在您的网站上,对不对?所以你可以做任何你需要做的事情,当这个页面被重新请求时(提供它没有被缓存)。

换句话说......在服务器端检测到用户是否点击了返回,然后执行您在点击Previous前所做的任何操作。

+0

嗨乔伊,谢谢。我希望能够使用JavaScript检测。我想我可以做你的建议,只是意味着我必须再次回到这个drupal form api! – davewilly 2011-01-26 12:16:23

相关问题