jquery重定向的行为与单击链接不同

时间:2015-03-05 19:38:22

标签: jquery asp.net-mvc-3

我正在使用ASP.NET MVC 3和jquery 1.9。

我有一个小型系统来检测用户是否在导航之前在屏幕上进行了更改。

我在视图中的脚本标记中有以下代码(setChangesMade函数只设置一个表示在屏幕上进行了更改的全局变量):

 $(function ()
 {
     $(window).bind('beforeunload', function ()
     {
         //Prompt the user to save changes if we have identified any as being unsaved.
         setChangesMade(true);

         if (changesMade)
         {
             return 'You have unsaved changes. Do you want to leave the page without saving changes?';
         }
     });

 });

如果我在屏幕上进行更改,然后单击链接,此代码可以正常工作。在消息之后,用户可以单击“确定”以导航并丢失更改或取消以保持放置。当使用页面上的链接导航时,这两种方案都很完美。

但如果我使用以下内容离开:

var url = ScriptResolveUrl("~/MyController/MyActionMethod");
$(location).attr('href', url);

消息框仍然按预期弹出。如果用户单击“确定”,则会按预期成功导航。但是,如果用户在消息框中单击“取消”并决定保留在页面上,则会引发未知的jquery错误。没有关于错误的信息。它只是说第3行的jquery错误。

为什么单击链接时这个工作完全正常,但在使用jquery重定向时却不行?

0 个答案:

没有答案