Magento сохраняет позицию прокрутки при возвращении на сафари - PullRequest
0 голосов
/ 08 апреля 2019

Я использую Magento 1.9.4.0 и в каждом браузере, когда нажимаю на страницу продуктов, а затем на продукт. Положение прокрутки остается прежним при возврате к продуктам снова. За исключением Safari, я не понимаю, почему он не работает для Safari.

Вот код, который я пытался использовать, но ни один из них не работает. Я использовал этот код в файле Scroll.js.

var Scroll = {
    mainMenuHeight: 0,


    init : function() {
        jQuery('document').ready( function() {
            Scroll.scroll();
            Scroll.anchorClick();
            Scroll.hashOnLoad();
            Scroll.toTop();
        });

        jQuery(document).ready(function() {
            // If scroll location cookie is set, and the location is the same
            //scroll to the position saved in the scroll cookie.
            if ( jQuery.cookie("scroll") !== null && jQuery.cookie("location") !== null
                && jQuery.cookie("location") == jQuery(location).attr('href')) {
                jQuery(document).scrollTop( jQuery.cookie("scroll") );
            }

            jQuery("#grid").click(function () {
                // Set cookie with current location
                jQuery.cookie("location", jQuery(location).attr('href'));
                // Set cookie with current scrollposition from the top
                jQuery.cookie("scroll", jQuery(document).scrollTop() );
            });
        });

    },
}

А это:

var Scroll = {
    mainMenuHeight: 0,

    init: function() {
        jQuery('document').ready(function() {
            Scroll.scroll();
            Scroll.anchorClick();
            Scroll.hashOnLoad();
            Scroll.toTop();
        });
        jQuery(function() {
            var pathName = document.location.pathname;
            window.onbeforeunload = function() {
                var scrollPosition = jQuery(document).scrollTop();
                sessionStorage.setItem("scrollPosition_" + pathName,
                    scrollPosition.toString());
            }
            if (sessionStorage["scrollPosition_" + pathName]) {
                jQuery(document).
                    scrollTop(
                        sessionStorage.getItem("scrollPosition_" + pathName));
            }
        });
    },
}

Я ожидал, что позиция прокрутки останется неизменной и при возврате в Safari. Он работает на некоторых продуктах, но не на всех продуктах ...

1 Ответ

0 голосов
/ 15 апреля 2019

Так что мне удалось это исправить самостоятельно. Это был файл с именем "slider.js" от scriptaculous. Я отключил этот файл, и проблема исчезла!

...