Показать сообщение отдельно
  #7 (permalink)  
Старый 14.12.2016, 20:30
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

простой маршрутизатор

var route = {
    _routes: [], // здесь будут храниться функции, которые вызываются в зависимости от адреса

    add: function(url, action) {
        this._routes.push({
            url: url,
            action: action
        });
    },

    run: function() {
        this._routes.forEach(function(pattern) {
            if(location.href.match(pattern.url)) {
                pattern.action();
            }
        });
    }
}

// пример
// выполниться всегда
route.add('.*', function() {
    alert('Hello there!');
});

route.add('products.html', function() {
    alert("this won't be executed :(");
});

// если сайт/страница/id/*какое то число* то скрипт запускается.
route.add('сайт/страница/id/\\d+', function(){
    alert('This is using a regex!');
});

route.run();
Ответить с цитированием