@nqounetです。
jQueryMobile(バージョン1.3.2)を使っている時は、iframeは使わないほうが良いです。
余程の事情がなければ使わないと思いますけれども。
お察しください
iframeを使ってコンテンツ(記事)を読み込んでいたところ、読み込んだ時にその部分にジャンプしていきました。
15記事ほどあった時には、読み込まれるたびにスクロールが発生し、しばらく操作していられないような状況になっていました。
ページ遷移と、ページ表示後の処理をloadイベントでハンドリングしていたので、おそらくそのどれかが原因だろうと探っていたのですが、絞り込んでいった結果、なんとjQueryMobileが犯人でした。
DOMContentLoaded
イベント(jQueryでいうと大体document.ready状態)が発生すると$.mobile.changePage()
にあるtransitionPages
が呼び出されていました。
そのせいで、iframeがロードされると、勝手にスクロールしていくのでした。
最初から作っていたのなら…
既存のコンテンツをjQueryMobileへ移植するのは、元のコンテンツ(アプリとかですが)の状態にもよりますが、結構難しいですね。
今回のようにiframeでのハマりポイントもありますし、せっかくの利点であるAJAXやpushStateを活かすのが難しい。
誰かが言っていました。(直接聞いたわけではありません)
新しい酒は新しい革袋に盛れ、と。
今どきの新しいフロントエンド(スマートフォン向けとか)のフレームワークを使うのであれば、それに応じたバックエンドを用意したほうが良さそうですね。
実践 jQuery Mobile
Maximiliano Firtman
オライリージャパン
売り上げランキング: 568,924
Amazon.co.jpで詳細を見る
jQuery Mobile
Jon Reid
オライリージャパン
売り上げランキング: 392,875
Amazon.co.jpで詳細を見る