-2

我使用脚本选择菜单项并导航到页面上的选定位置:

$(function () {
    var topMenu = $('.nav'),
        menuItems = topMenu.find('a'),

        scrollItems = menuItems.map(function () {
            var item = $($(this).attr('href'));
            if (item.length) {
                return item;
            }
        }),

        hash = window.location.hash;

    menuItems.click(function (e) {
        e.preventDefault();
        var href = $(this).attr('href');
        offsetTop = href === "#" ? 0 : $(href).offset().top - 20;
        window.history.replaceState('', '', href);
        $('html, body').animate({
            scrollTop: offsetTop
        }, 300);
    });
});

它在 Chrome、FF 和 Opera 中完美运行,但在 IE9、8、7 中不能完全运行。

如何让它在 IE 中运行?

这是我的代码http://jsfiddle.net/UB9f9/10/

4

1 回答 1

1

在下面的行评论。window.history.replaceState不适用于 IE 7、8、9 检查兼容性图表。http://caniuse.com/#search=replaceState

// window.history.replaceState('', '', href);

于 2013-11-01T12:35:20.727 回答