HistoryオブジェクトにpushState()とreplaceState()というメソッドが追加されました。
pushStateというのは、
Historyのリストに新しくエントリを追加してしまいます。
ページ遷移をしていなにのに、Hisotryが追加されるのです。
下記にコードを示します。
<html>
<head>
<script>
function push_history() {
history.pushState("", "", "/example");
}
</script>
</head>
<body>
Hello, World!
<form>
<input type="button" value="button" onclick="push_history()" />
</body>
</html>
これにより、
現在のページが "http://foo.com/hello/index.html " だった場合、
ボタンをクリックするとURLが第3引数により、"http://foo.com/example" に変化しており、
戻るのリストをみると、1個Historyが追加されているのがわかります。
実際に戻るをクリックすると、URLバーが
"http://foo.com/hello/index.html "
に戻ります。
これで、ページを遷移していないのに、
Historyにエントリを追加して、URLを変更することができます。
Ajaxとこれを組み合わせた技術を "Pjax" と呼びますが、
これは別途まとめようと思います。
0 件のコメント:
コメントを投稿