Chrome
AngularJS

AngularJS で $window.location.reload(); のタイミングが変わった??


Chrome 73 でAngularJSで書いたコードの動作が変わってしまった

$location.path('/foo');

$window.location.reload();

みたいなコードがあって、 Chrome 72 まではちゃんと /foo を表示していたのが、 Chrome 73 になると表示中の画面の URL でリロードするようになってしまった。

調べてみるとパスの置き換えよりも前にリロードされている感じ。


Chrome 73 での変更点

:link: Chrome 73 :コンストラクタブル スタイルシート、新しい正規表現関数、Passive mouse イベント

関連性があるか?と言われると、… :thinking: :question:


とりあえず動作させる

$location.path('/foo');

$timeout(function() { $window.location.reload(); });

タイム・アウトさせると動く。

$window.location.href = '/foo';

リロードじゃないけど、これでもまあ動く。


同じ事象に悩んでる人いないかもしれないけど、まとめ

割とタイムリーなタイミングだったのでまとめました。

でも Chrome のバージョンアップで動作変わるとかやめてほしいよ… Go○gle 先輩 :innocent: