检查Backbone.js中的referrer

时间:2012-02-09 13:21:04

标签: javascript backbone.js referrer

我在我的网络应用程序中使用backbone.js,特别是路由和历史记录。

所以我有一个像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 :(得分:0)

您可以尝试保存最新值:

$(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您将在控制台中看到最近输入的路线。