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

回答編集履歴

1

オーバーライド

2017/05/10 13:29

投稿

h_daido
h_daido

スコア824

answer CHANGED
@@ -5,4 +5,31 @@
5
5
  console.log('ng時の処理')
6
6
  }
7
7
  ```
8
- こんなかんじですかね。
8
+ こんなかんじですかね。
9
+
10
+
11
+
12
+
13
+ <修正版>
14
+ 少し荒技ですが、こんな方法もあります。
15
+ ```JavaScript
16
+ var originalConfirm = window.confirm;
17
+ var okFunc = function(){
18
+ console.log('OK時に呼ばれる')
19
+ }
20
+ var finnalyFunc = function(){
21
+ console.log('常に呼ばれる')
22
+ }
23
+ var ngFunc = function(){
24
+ console.log('ng時に呼ばれる')
25
+ }
26
+ window.confirm = function(message) {
27
+ if(originalConfirm.call(window, message)){
28
+ okFunc();
29
+ }else{
30
+ ngFunc();
31
+ }
32
+ finnalyFunc();
33
+ }
34
+ ```
35
+ window.confirmメソッド自体をWrapしてしまいます。window.confirmを呼ぶとかならずコールされるので取り扱いには注意してください