回答編集履歴
3
ローカル変数省略版のサンプルコードを追記
answer
CHANGED
@@ -55,8 +55,20 @@
|
|
55
55
|
}, 1000, 'counter');
|
56
56
|
```
|
57
57
|
|
58
|
+
**(2017/01/13 11:45 追記)**
|
59
|
+
上記コードでは分かりやすいようにローカル変数を使用していますが、それぞれの変数は1回ずつの使用なので変数宣言を省略する事も出来ます。
|
60
|
+
|
61
|
+
```JavaScript
|
62
|
+
setInterval(function handleCountDown (id) {
|
63
|
+
if (--this.document.getElementById(id).firstChild.data < 1) {
|
64
|
+
location.replace('http://example.com/');
|
65
|
+
}
|
66
|
+
}, 1000, 'counter');
|
67
|
+
```
|
68
|
+
|
58
69
|
### 更新履歴
|
59
70
|
|
60
71
|
- 2017/01/13 11:35 サンプルコードを追記
|
72
|
+
- 2017/01/13 11:45 ローカル変数省略版のサンプルコードを追記
|
61
73
|
|
62
74
|
Re: rento さん
|
2
サンプルコードを更に追記
answer
CHANGED
@@ -40,4 +40,23 @@
|
|
40
40
|
</script>
|
41
41
|
```
|
42
42
|
|
43
|
+
関数式にすればグローバル汚染もなくなります。
|
44
|
+
その場合は引数 `id` を排除してもいいですが、設計指針の好みの範疇だと思います。
|
45
|
+
|
46
|
+
```JavaScript
|
47
|
+
'use strict';
|
48
|
+
setInterval(function handleCountDown (id) {
|
49
|
+
var textNode = this.document.getElementById(id).firstChild,
|
50
|
+
count = --textNode.data;
|
51
|
+
|
52
|
+
if (count < 1) {
|
53
|
+
location.replace('http://example.com/');
|
54
|
+
}
|
55
|
+
}, 1000, 'counter');
|
56
|
+
```
|
57
|
+
|
58
|
+
### 更新履歴
|
59
|
+
|
60
|
+
- 2017/01/13 11:35 サンプルコードを追記
|
61
|
+
|
43
62
|
Re: rento さん
|
1
サンプルコードの追記
answer
CHANGED
@@ -16,4 +16,28 @@
|
|
16
16
|
- [Windows クライアント OS の製品サポートライフサイクル ポリシー更新について (2012 年 2 月) - Microsoft](https://www.microsoft.com/ja-jp/windows/lifecycle/default.aspx?navIndex=3#vista)
|
17
17
|
- [Callback arguments - WindowOrWorkerGlobalScope.setInterval() - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval#Callback_arguments)
|
18
18
|
|
19
|
+
### サンプルコード
|
20
|
+
|
21
|
+
- [サンプル - codepen](http://codepen.io/anon/pen/NdrWBR)
|
22
|
+
|
23
|
+
```HTML
|
24
|
+
<p><span id="counter">5</span>秒後にログインページへ移動します。</p>
|
25
|
+
<ul>
|
26
|
+
<li><a href="https://teratail.com/questions/61815">JavaScript - javascript メソッドがうまく組めない(61815)|teratail</a></li>
|
27
|
+
</ul>
|
28
|
+
<script>
|
29
|
+
'use strict';
|
30
|
+
function handleCountDown (id) {
|
31
|
+
var textNode = this.document.getElementById(id).firstChild,
|
32
|
+
count = --textNode.data;
|
33
|
+
|
34
|
+
if (count < 1) {
|
35
|
+
location.replace('http://example.com/');
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
setInterval(handleCountDown, 1000, 'counter');
|
40
|
+
</script>
|
41
|
+
```
|
42
|
+
|
19
43
|
Re: rento さん
|