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;
};
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ドキュメントを翻訳/改変したものです。