@tsquare/switcher
v1.0.3
Published
Easily replace content without reloading the page.
Readme
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.
