FAQ

更新日: 2018-09-04

'barba'とはどういう意味ですか?

'barba'はイタリア語で髭(ひげ)という意味です。 @danielemeliの提案に感謝します。


特定のリンクでbarba.jsを無効化することはできますか?

.no-barbaを追加するか、 Barba.Pjax.preventCheckを独自のチェックロジックに置き換える方法があります。

既存のBarba.Pjax.preventCheckは、 いくつもの内部サニティーチェック(基本的な動作チェック)を行うので、 ほとんどの場合は、置き換えたチェックロジックと一緒に使いたいのではないかと思います。
たとえば、PDFのリンクでbarba.jsを無効化したい場合は以下のように指定します。

// オリジナルのオブジェクトにBarba.Pjax.preventCheckを代入
Barba.Pjax.originalPreventCheck = Barba.Pjax.preventCheck;

// 通常のチェック機能を拡張
Barba.Pjax.preventCheck = function(evt, element) {
  // originalPreventCheck(Barba.Pjax.preventCheckが入っている)
  if (!Barba.Pjax.originalPreventCheck(evt, element)) {
    // 該当リンクはPJAXを無効化
    return false;
  }

  // element.href自体のチェック不要です
  // その為にoriginalPreventCheckを使いました。(その他のチェックもしています)
  if (/.pdf/.test(element.href.toLowerCase())) {
    // PDFの場合はPJAXを無効化
    return false;
  }

  return true;
};

[デモ - No Barba]


Google Analytics(やその他のトラッキングシステム)はどうすれば更新できますか?

initStateChangeイベントでGoogle Analyticsを更新するだけで十分です。

Barba.Dispatcher.on('newPageReady', function(currentStatus, prevStatus, container, newPageRawHTML) {
  ga('send', 'pageview', location.pathname);
});

* initStateChangeでも更新できますが、 ページタイトルは古いページのタイトルのままです。 その為、Analytics上でページ名とURLがズレてしまいます。 新しいページの準備が完了するnewPageReadyが良いと思います。


どのブラウザをサポートしていますか?

トランジションを使うには、pushstateが必要ですが、 新しいブラウザであれば使うことができます。 詳細についてはcaniuse.comを参照してください。
pushstateがサポートされていない場合、 barba.jsは使えませんが、Viewを使うことはできます。



© 2016 Luigi De Rosa Released under the MIT license

このコンテンツはLuigi De Rosa(luruke)によるBarbaドキュメントを翻訳/改変したものです。