【问题标题】:Detect if javascript dialog button clicked and redirect检测是否单击了javascript对话框按钮并重定向
【发布时间】:2011-01-26 11:08:14
【问题描述】:

大家好,如果用户单击返回按钮,我正在使用 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'
          }
     }
}

提前致谢。

大卫

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

    但如果他们确实导航返回,他们仍然会在您的网站上,对吗?因此,当该页面被重新请求时,您可以做任何您需要做的事情(前提是它没有被缓存)。

    换句话说...在服务器端检测用户是否单击了“返回”,然后执行如果用户单击“上一步”会执行的操作。

    【讨论】:

    • 嗨,乔伊,谢谢。我希望能够使用 javascript 进行检测。我想我可以按照你的建议去做,只是意味着我必须再次破解这个 drupal 表单 API!
    • 谢谢你的帮助,乔伊,我不是故意的!
    • 没问题。不幸的是,如果他们决定忽略您的警告,您无法覆盖用户的行为。但至少你要警告他们,所以无论发生什么都是他们自己的错!
    • 您可以选择的一个选项是在第一次调用 onbeforeunload 时向服务器发布消息(通过向页面添加新的
    猜你喜欢
    • 2021-12-29
    • 2015-01-15
    • 2014-07-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多