Davis.jsはHTML5のHistory API を利用しているため、
file:// などのローカルパスを指定したリンクではHTML5のpushStateメソッドが呼ばれた時点でエラーとなってしまいリンクのイベント取得がうまく行かない。
具体的には以下の「history.pushState」で処理が終了し、「Davis.utils.forEach」が実行されない。
//davis.jsの一部 function assign(request) { history.pushState(wrapStateData(request.toJSON()), request.title, request.location()); Davis.utils.forEach(pushStateHandlers, function (handler) { handler(request); }); };
なのでコメントアウトしてしまおう。
//davis.jsの一部 function assign(request) { //history.pushState(wrapStateData(request.toJSON()), request.title, request.location()); Davis.utils.forEach(pushStateHandlers, function (handler) { handler(request); }); };
多分ほかにもいろいろHistory関連はコメントアウトが必要。当然ながらブラウザのヒストリー操作はできないのであくまでもリンクの制御だけとなる。
しかしながらPhoneGapとかローカルにhtmlファイル置いてスマホ開発する際にはこうするしかないんではないかと。