node package manager
Stop writing boring code. Discover, share, and reuse within your team. Create a free org ยป

navigate

navigate

A router for the browser (client-side JavaScript).

Overview

  • Has no dependencies.
  • Supports Asynchronous Module Loader (AMD, RequireJS), CommonJS (Node.js require) and regular <script> loading.
  • If HTML5 History API is not available, falls back to hashes.
  • Handles click events on same origin links.
  • Tested on these browsers:
    • Mozilla Firefox 1.0+
    • Opera 8.00+
    • Google Chrome 1+
    • Microsoft Internet Explorer 6+
    • Apple Safari 3.0+

Installation

Install manually by adding to your HTML file:

<script src="/path/to/navigate/navigate.js"></script>

Install with npm:

$ npm install --save navigate

Install with component:

$ component install jakutis/navigate

Install with bower:

$ bower install --save navigate

API

// configure, can be called anytime at all (including never)
navigate({
    // whether same origin a.href clicks are captured
    clickHandlingEnabled : true,
    // URL path prefix
    basePath : ''
});

// initialize
navigate();

// get current page (also initialize, if not initialized)
navigate(function(entryPage) {
    console.log('Entry page to this web app is ' + entryPage);
});

// handle navigations to /user/* pages
navigate(/^\/user\/(.+)$/, function(args, from, to) {
    console.log('Navigated from page ' + from + ' to ' + to);
    console.log('Showing user ' + args[0]);
});

// navigate to user's "tahu" page
navigate('/user/tahu');

Development

TODO