回答編集履歴

1

オーバーライド

2017/05/10 13:29

投稿

h_daido
h_daido

スコア824

test CHANGED
@@ -13,3 +13,57 @@
13
13
  ```
14
14
 
15
15
  こんなかんじですかね。
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+ <修正版>
26
+
27
+ 少し荒技ですが、こんな方法もあります。
28
+
29
+ ```JavaScript
30
+
31
+ var originalConfirm = window.confirm;
32
+
33
+ var okFunc = function(){
34
+
35
+ console.log('OK時に呼ばれる')
36
+
37
+ }
38
+
39
+ var finnalyFunc = function(){
40
+
41
+ console.log('常に呼ばれる')
42
+
43
+ }
44
+
45
+ var ngFunc = function(){
46
+
47
+ console.log('ng時に呼ばれる')
48
+
49
+ }
50
+
51
+ window.confirm = function(message) {
52
+
53
+ if(originalConfirm.call(window, message)){
54
+
55
+ okFunc();
56
+
57
+ }else{
58
+
59
+ ngFunc();
60
+
61
+ }
62
+
63
+ finnalyFunc();
64
+
65
+ }
66
+
67
+ ```
68
+
69
+ window.confirmメソッド自体をWrapしてしまいます。window.confirmを呼ぶとかならずコールされるので取り扱いには注意してください