休闲JQuery地址1.5不触发IE中的外部更改

时间:2013-06-03 20:39:37

标签: jquery internet-explorer deep-linking jquery-address

我遇到的问题是当你离开页面并点击后退或刷新页面时,externalChange没有在IE中触发。

其中一个有问题的网页是http://www.travelwisconsin.com/events。这肯定发生在IE9中,但我也能够使用BrowserStack在IE10中重现它

重现的步骤:

  1. 转到http://www.travelwisconsin.com/events
  2. 转到页面底部的目录
  3. 浏览目录几次(网址将使用散列网址进行更新)。
  4. 点击查看其中一个活动的详细信息
  5. 点击浏览器后退按钮
  6. Page不会调用externalChange来触发您上一次页面的ajax调用
  7. 以下是我用来设置此过程的javascript。当你到达上面的第6步时,永远不会调用externalChange方法。您对可能发生的事情有任何建议吗?

            var isInit = true;
            $.address.strict(false);
            $.address.externalChange(function(e)
            {
                var pageNumber = e.value == ""||e.value=="/"?1:e.value.split('/')[e.value.split('/').length - 1].split('?')[0];
                var isArticleTab = !(e.value == ""||e.value=="/"||e.value.indexOf("Directory") >= 0);
                if ((!isInit||e.value !="")&&e.value != "directoryAnchor")
                {
                    if (e.value == ""||e.value=="/")
                    {
                        wdot.ContentPages.DirectoryListing.LoadEventsPage($(".directoryListContainer"), false, 1, true);
                    } else {
                        if (pageNumber != 1) {
                            wdot.ContentPages.DirectoryListing.LoadEventsPage(!isArticleTab ? $(".directoryListContainer") : $(".articleDirectoryListing"),false, pageNumber,null,$.address.queryString());
                        } else {
                            wdot.ContentPages.DirectoryListing.LoadEventsPage($(".directoryListContainer"),false, 1,null,$.address.queryString());
                        }
                    }
                    isInit = false;
                } else {
                    isInit = false;
                }
            });
    

0 个答案:

没有答案