Проверьте реферер в Backbone.js - PullRequest
       3

Проверьте реферер в Backbone.js

1 голос
/ 09 февраля 2012

Я использую backbone.js для своего веб-приложения, в частности Routing and History.

Итак, у меня есть URL-адрес типа http://localhost/search/John+Doe.

В моем router.js у меня есть маршрут как

search: function () {
    /* do something */
    /* Can I check here, whether I came to this page using Backbone's navigate()
       or by pasting the url in the urlbar */
}

В этой функции есть встроенный способ, позволяющий проверить, как я попал на эту страницу: либо с помощью Backbone.router.navigate, либо путем вставки URL-адреса в строку URL-адреса браузера / щелкнув ссылку, которая привел меня туда?

Я пробовал document.referrer, но это

>> document.referrer
""

в обоих случаях.

1 Ответ

0 голосов
/ 10 февраля 2012

Вы можете попытаться сохранить последнее значение:

$(function(){
  var lastPage = 'stackoverflow.com';
  var routesObject = {
    'help': 'helpFun',
    'search': 'searchFun'
  };
  var Router = Backbone.Router.extend({
      initialize: function() {
          this.bind('all', function(route) {
              lastPage = window.location.hash.split('#')[1];
          });
      },
      routes: routesObject,
      searchFun: function(){
          console.log(lastPage);
      },
      helpFun: function() {
          console.log(lastPage);
      }
  });
  var router = new Router();
  Backbone.history.start({pushState:false});
});

Если вы перейдете к your.domain.com/yourapp#search, а затем к your.domain.com/yourapp#help В консоли вы увидите недавно введенный маршрут.

...