LoginSignup
3
3

More than 5 years have passed since last update.

Turbolinksでの遷移時にリンクをホワイトリストで弾く

Last updated at Posted at 2015-08-12

Turbolinksを有効にしたいが、特定のリンク間でしか有効にしたくないケースがある。

page:before-change は Cancellableだとドキュメントにあるので、event.data.urlに遷移しようとするリンクが入っているので、この情報をみてpreventDefault するかどうか決める。

rails/turbolinks

タイトルでホワイトリストといってるが実装は正直何でもいい。正規表現でもいい。

// cancel state change by whitelist
const ALLOWABLE_LINKS = [
  '/foo',
  /'bar'
];

window.addEventListener('page:before-change', e => {
  if (!ALLOWABLE_LINKS.some(link => link === e.data.url) ) {
    e.preventDefault();
    location.href = e.data.url;
  }
  return true;
});
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3