Резервный API истории html5?

Я новый javascript. Мне удалось создать скрипт .load, который загружается в разных представлениях (с большой помощью). Это работает, но я не знаю, как заставить скрипт загружаться в соответствующем представлении, когда кто-то использует URL-адрес, например www.mydomain.com/#view3.

Помимо этой уже существующей проблемы, я хочу заменить свой текущий скрипт загрузки на API истории html5 и вернуться к старому, когда браузер клиента его не поддерживает. как я могу узнать, поддерживает ли браузер API истории, и если нет, то как сделать запасной вариант? я знаю, что modernizr поддерживает классы css для отката. существует ли библиотека для того же самого в javascript?

Я знаю, что это много, о чем я прошу. я в настоящее время читаю себя, но я немного напряжен :-/

это мой правильный код:

$(document).ready(function () {
    $(".con").load("views/startseite.php", function () {
        $(".scroll").jScrollPane({mouseWheelSpeed:20});$(".jspDrag").hide();$(".jspScrollable").mouseenter(function(){$(this).find(".jspDrag").stop(!0,!0).fadeIn()});$(".jspScrollable").mouseleave(function(){$(this).find(".jspDrag").stop(!0,!0).fadeOut()})
    });
    $("nav a").click(function (a) {
        a.preventDefault();
        a = $(this).attr("href").split("/").pop().split(".").shift();
        $(".con").hide().load("views/" + a + ".php", function () {
            $(".con").fadeIn("fast",
                function () {
                    $(".scroll").jScrollPane({mouseWheelSpeed:20});$(".jspDrag").hide();$(".jspScrollable").mouseenter(function(){$(this).find(".jspDrag").stop(!0,!0).fadeIn("slow")});$(".jspScrollable").mouseleave(function(){$(this).find(".jspDrag").stop(!0,!0).fadeOut("slow")})})
        });
        document.title = "My-Domain.com | " + (a.substr(0, 1).toUpperCase() + a.substr(1));
        location.hash = a;
        return !1
    })
    $(document).on('submit', 'form.ajax', function (e) {
        e.preventDefault();
        var that = $(this),
            url = that.attr('action'),
            type = that.attr('method'),
            data = {};
        that.find('[name]').each(function (index, value) {
            var that = $(this),
                name = that.attr('name'),
                value = that.val();
            data[name] = value
        });
        $.ajax({
            url: url,
            type: type,
            data: data,
            success: function () {
                $(".flipbox").flippy({
                    color_target: "",
                    duration: "500",
                    verso: "Anything!",
                    onFinish: function () {
                        $("#no-color").css("background-color", "transparent");
                    }
                });
            }
        });
    });
    $(document).on('submit', 'form.lebenslauf', function (e) {
        e.preventDefault();
        var $this = $(this);
        $.ajax({
            url: './secure/secure.php',
            type: 'post',
            data: {
                code: $('input[name=bewerbung]').val()
            },
            success: function (resp) {
                if (resp.substr(0, 5) == "Error") {
                    $('.error').html(resp);
                } else {
                    $('.flipbox').flippy({
                        duration: "500",
                        verso: resp,
                        onFinish: function () {
                            $(".flipbox").css("background-color", "transparent");
                        }
                    });
                }
            }
        });
    });
});

person Robert Richter    schedule 06.02.2014    source источник


Ответы (1)


Что ж, к сожалению, я не могу вам очень помочь с вашей проблемой загрузки разных представлений, но я думаю, что могу дать некоторое представление о второй части вашего вопроса.

Большую часть необходимой вам функциональности состояния браузера можно реализовать с помощью history.js: https://github.com/browserstate/history.js/

Он предоставляет вам простые предварительно созданные функции, а вся кросс-браузерная поддержка выполняется за кулисами. Когда API истории html5 недоступен, вместо него автоматически используется хэш.

Надеюсь, это та библиотека, которую вы ищете, удачи!

person jrobson153    schedule 06.02.2014