2015-11-05 76 views
1

我创建了一个网站,使用ajax加载页面。我用pushstate方法来改变网址。当我遍历网站,然后点击后退按钮时,什么也没有发生。现在,当我安装AdBlock时,一切正常。网站在铬上运行良好。Firefox后退按钮无法与谷歌广告正常工作

$(document).on('ready readyAgain', function() { 
function ChangeUrl(title, url) { 
    if (typeof (history.pushState) != "undefined") { 
     var obj = { Title: title, Url: url }; 
     history.pushState(obj, obj.Title, obj.Url); 
    } else { 
     alert("Browser does not support HTML5."); 
    } 
} 

function loadPrevPage(ajax_url) { 

    $.ajax({ 
     url: ajax_url, 
     type: "GET", 
     dataType: "html" 
    }).done(function (data, textStatus, jqXHR) { 
     var $divToFind = $($.parseHTML(jqXHR.responseText)).filter("#radio-main-wrapper"); 
     $('#radio-main-wrapper').html($($divToFind).html()); 
     var reponse = jQuery(jqXHR.responseText); 
     var reponseScript = reponse.find(".all_wrapper script"); 
     jQuery.each(reponseScript, function (idx, val) { 
      var parent_div = $(this).parent(); 
      window.ad_div = parent_div[0]; 
      if (val.text === "") { 
       var src = val.src; 
       $.getScript(src); 
      } else { 
       $.globalEval(val.text); 
      } 

     }); 
     $(document).trigger('readyAgain'); 
    }).fail(function (jqXHR, textStatus, errorThrown) { 

    }); 
} 

window.onpopstate = function (e) { 
    loadPrevPage(location.pathname); 
} 

$("body a").click(function (e) { 
    e.preventDefault(); 
     ChangeUrl('', ajax_url); 
     $.ajax({ 
        url: ajax_url, 
        type: "GET", 
        dataType: "html" 
       }).done(function (data, textStatus, jqXHR) { 
        var $divToFind = $($.parseHTML(jqXHR.responseText)).filter("#radio-main-wrapper"); 
        $('#radio-main-wrapper').html($($divToFind).html()); 
        var reponse = jQuery(jqXHR.responseText); 
        var reponseScript = reponse.find(".all_wrapper script"); 
        jQuery.each(reponseScript, function (idx, val) { 
         var parent_div = $(this).parent(); 
         window.ad_div = parent_div[0]; 
         if (val.text === "") { 
          var src = val.src; 
          $.getScript(src); 
         } else { 
          $.globalEval(val.text); 
         } 
        }); 
        $(document).trigger('readyAgain'); 
       }).fail(function (jqXHR, textStatus, errorThrown) { 

       }); 
    }); 
}); 

您可以检查代码在这里 - http://www.planetradiocity.com/popstate/

当我去TEST1或TEST3,我将不得不上的后退按钮点击两次。

+1

请访问[帮助]了解如何提出不会降低和/或关闭的问题。提示:发布代码 – mplungjan

+1

发布完整的工作示例会有帮助,特别是如果它可以轻松加载到Chrome进行测试。 –

+0

@CoryTrese你可以在这里查看演示 - http://www.planetradiocity.com/popstate/ –

回答

0

每次浏览器加载谷歌广告时,它都会将页面推入历史记录对象。您可以尝试加载谷歌广告iframe