scrollToの件でWindows Phoneでドハマリしたので、とても参考になるとは思いませんが、一応メモとして残しときます。
諸事情でページがロードされたときに、ページ上部に移動するという実装を試みました。普通にwindow.scrollTo(0,0)を指定したわけですが、Windows Phoneで動作しませんでした。(Windows Phoneエミュレーターでの確認ですが)
IE9では当然ながら動作しました。なので「IE9で動くねんから動かんとおかしいやろ!」と思いながら、いろいろ試したのですが、ともかく動きませんでした。なぜなんでしょうね?
そこで、setTimeoutという選択肢がどことなく浮かんできたので、setTimeoutとともに使うとなんとか動作しました。そんときのコードが下記。(Windows Phoneのみ動作させたかったので、UA判別でWindows Phoneの場合のみという条件分岐をしています。)
if (navigator.userAgent.indexOf('Windows Phone') != -1 ){
window.setTimeout(function(){
window.scrollTo(0,0)
}, 10)
};
「んなことはない!setTimeout使わんでも動くで!」と言う方がおられば(おると思います)ご教示ください。




コメントする