【问题标题】:Firefox back button not working properly with google adsFirefox 后退按钮无法与谷歌广告一起正常工作
【发布时间】:2015-11-05 06:45:18
【问题描述】:

我创建了一个网站,我在其中使用 ajax 加载页面。我已经使用 pushstate 方法来更改 url。当我遍历网站然后单击后退按钮时,没有任何反应。现在,当我安装 AdBlock 时,一切正常。网站在 chrome 上运行良好。

$(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 时,我必须点击两次后退按钮。

【问题讨论】:

  • 请访问help center 了解如何提出不会被否决和/或关闭的问题。提示:发布代码
  • 发布一个完整的工作示例会有所帮助,尤其是如果它可以轻松加载到 Chrome 中进行测试。
  • @CoryTrese 你可以在这里查看演示 -- planetradiocity.com/popstate

标签: javascript jquery ajax firefox google-ad-manager


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多