teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

内容の更新

2017/04/25 01:22

投稿

-1an.vvks-
-1an.vvks-

スコア71

title CHANGED
File without changes
body CHANGED
@@ -19,19 +19,21 @@
19
19
  jQueryで出来るなら,多少コードが長くなったとしてもVanillaJSでも出来るはずだと思うのですが...
20
20
 
21
21
  ##現状
22
- [こうなってました](http://lan.webcrow.jp/i_20170425/index_pub.html#s0)(setInterval無し版)
22
+ **[こうなってました](http://lan.webcrow.jp/i_20170425/index_pub.html#s0)**(setInterval無し版)
23
23
 
24
24
  画面左中央のボタンが本件の<a>です。
25
25
  ボタンを押した瞬間とhistory.replaceState終了後にそれぞれ現在のURLをalertで出力させています。
26
26
  1回目のalertで、#付きのURLが表示され、2回目のalertで、#無しのURLが表示されますが、alertを閉じると(処理が終わると)URLが戻ってしまいます。
27
27
 
28
- そして、morisobaさんの提案通りsetTimeoutを指定したものが[こちら](http://lan.webcrow.jp/i_20170425/index_pub1.html)です。
28
+ そして、morisobaさんの提案通りsetTimeoutを指定したものが**[こちら](http://lan.webcrow.jp/i_20170425/index_pub1.html)**です。
29
29
  **見事にうまくいきました!**
30
30
 
31
31
  ###ということで
32
- そもそも何故、```history.replaceState```を単体で書くと処理が持続しないのか、**[kipureさんのDEMO](http://www.kipure.com/article/97/)**は```history.replaceState```を単体で書いていましたし、jQueryを使っていると、勝手にsetTimeoutが設定されるのでしょうか?
32
+ そもそも何故、```history.replaceState```を単体で書くと処理が持続しないのか、**[kipureさんのDEMO](http://www.kipure.com/article/97/)**は```history.replaceState```を単体で書いていました
33
+ jQueryを使っていると、勝手にsetTimeoutが設定されるのでしょうか?
33
34
 
34
35
  kipreさんのソース
35
36
  ![kipreさんのdemo](6c06e835c09e4d615bc224005693636c.png)
37
+ あと、いちいちfunction(){}と書かなければならないのはなぜでしょうか
36
38
 
37
39
  この辺りについて教えてもらえるとうれしいです。

2

内容の追加

2017/04/25 01:22

投稿

-1an.vvks-
-1an.vvks-

スコア71

title CHANGED
File without changes
body CHANGED
@@ -16,4 +16,22 @@
16
16
  状況としては**[cly7796.netさんのDEMO](http://cly7796.net/wp/javascript/rewrite-the-url-in-the-address-bar/)**と同じ状況になっています.しかし,単に「history.replaceState('','','URL1');」と書くだけ,と言っている**[kipureさんのDEMO](http://www.kipure.com/article/97/)**はちらつきが発生していません.
17
17
 
18
18
  両者の違いと言えば,VanillaJSかjQueryかぐらいでしょうか?
19
- jQueryで出来るなら,多少コードが長くなったとしてもVanillaJSでも出来るはずだと思うのですが...
19
+ jQueryで出来るなら,多少コードが長くなったとしてもVanillaJSでも出来るはずだと思うのですが...
20
+
21
+ ##現状
22
+ [こうなってました](http://lan.webcrow.jp/i_20170425/index_pub.html#s0)(setInterval無し版)
23
+
24
+ 画面左中央のボタンが本件の<a>です。
25
+ ボタンを押した瞬間とhistory.replaceState終了後にそれぞれ現在のURLをalertで出力させています。
26
+ 1回目のalertで、#付きのURLが表示され、2回目のalertで、#無しのURLが表示されますが、alertを閉じると(処理が終わると)URLが戻ってしまいます。
27
+
28
+ そして、morisobaさんの提案通りsetTimeoutを指定したものが[こちら](http://lan.webcrow.jp/i_20170425/index_pub1.html)です。
29
+ **見事にうまくいきました!**
30
+
31
+ ###ということで
32
+ そもそも何故、```history.replaceState```を単体で書くと処理が持続しないのか、**[kipureさんのDEMO](http://www.kipure.com/article/97/)**は```history.replaceState```を単体で書いていましたし、jQueryを使っていると、勝手にsetTimeoutが設定されるのでしょうか?
33
+
34
+ kipreさんのソース
35
+ ![kipreさんのdemo](6c06e835c09e4d615bc224005693636c.png)
36
+
37
+ この辺りについて教えてもらえるとうれしいです。

1

例示した2つのDEMOの相違点について言及

2017/04/25 01:20

投稿

-1an.vvks-
-1an.vvks-

スコア71

title CHANGED
File without changes
body CHANGED
@@ -15,5 +15,5 @@
15
15
 
16
16
  状況としては**[cly7796.netさんのDEMO](http://cly7796.net/wp/javascript/rewrite-the-url-in-the-address-bar/)**と同じ状況になっています.しかし,単に「history.replaceState('','','URL1');」と書くだけ,と言っている**[kipureさんのDEMO](http://www.kipure.com/article/97/)**はちらつきが発生していません.
17
17
 
18
+ 両者の違いと言えば,VanillaJSかjQueryかぐらいでしょうか?
18
- 何が原因このような違いがていのか分かればURL書き換えを**チラつき無**実現できると思うのですが...
19
+ jQueryで出なら多少コードが長くなったとてもVanillaJSも出来はずだと思うのですが...
19
- どなたかご存知ないでしょうか?