@tsquare/switcher

1.0.3 • Public • Published

Switcher

Easily replace content without reloading the page.

Switcher, inspired by TurboLinks, sends an XHR request, swaps body content, and adds any missing scripts and styles.


Example 1:

const switcher = new Switcher();
switcher.init();

That's it! Switcher will automatically hijack internal links, and swap out differing html contents on click.

Example 2:

  • URL: /page-1
<div class="container">
    <div class="content">
        <a href="/page-2" class="switcher-link">Page 2</a>
    </div>
</div>
  • URL: /page-2
<div class="container">
    <div class="content">
        <a href="/page-1" class="switcher-link">Page 1</a>
    </div>
</div>
  • On /page-1, clicking the link will replace the contents of <div class="container"> with the contents of <div class="container"> from /page-2, and update the URL.
document.addEventListener('DOMContentLoaded', () => {
    const switcher = new Switcher({
        containerSelector: '.container', // default = 'body'
        linkSelector: '.switcher-link', // default = 'a'
        debug: false // console.log() if container or link selectors not found. default = false.
    });

    switcher.init();
});
  • A link can be excluded by adding the attribute data-switcher="false"

Events

switcher.before

Fires after the request has been made, before the content has been replaced.

switcher.after

Fires after the content has been replaced.

Readme

Keywords

none

Package Sidebar

Install

npm i @tsquare/switcher

Weekly Downloads

0

Version

1.0.3

License

MIT

Unpacked Size

36.5 kB

Total Files

15

Last publish

Collaborators

  • tsquare