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

質問編集履歴

3

解決策の掲示

2022/07/21 10:09

投稿

sodoc
sodoc

スコア1

title CHANGED
File without changes
body CHANGED
@@ -17,6 +17,17 @@
17
17
 
18
18
  どちらでも良いのですが、いずれにせよ実現方法がわかりません。
19
19
 
20
+ ### 処理のフロー
21
+ サイトにアクセス
22
+
23
+ 画面表示(iframeやテキストエリアなどの各コンポーネントを表示)
24
+
25
+ テキストエリアにコードを記入し実行ボタンを押下
26
+
27
+ 文字列を置換する関数が実行され iframe の srcdoc が更新
28
+
29
+ p5js が実行、エラーがあればコンソールに表示
30
+
20
31
  ### 該当のソースコード
21
32
 
22
33
  親コンポーネントのテキストエリアに書かれた p5.js 用のコードを取得して
@@ -78,7 +89,7 @@
78
89
  ```
79
90
  この "Uncaught ReferenceError: x is not defined" をコンソールを確認しなくてもわかるように画面表示したいです。
80
91
 
81
- #### 追記
92
+ #### 質問後にやったこと1(解決せず)
82
93
  イベントリスナを設定してみましたが、結果が以前と何も変わらなかったです。リスナ内の console.log() が実行されていないようなのでリスナが動作していない?のではないかと思います。
83
94
 
84
95
  ```javaScript
@@ -110,4 +121,14 @@
110
121
  }
111
122
  }
112
123
  </script>
113
- ```
124
+ ```
125
+
126
+ #### 質問後にやったこと2(解決)
127
+ 以下のイベントリスナを srcdoc 更新時に毎回埋め込むよう( htmlDoc の '<script><\/script>' を置換後、以下のタグを追加 ) に修正。
128
+ ```javaScript
129
+ <script>
130
+ window.addEventListener('error', (event) => {
131
+ console.log('error:', event);
132
+ })
133
+ </script>
134
+ ```

2

エラーについて追記

2022/07/21 06:16

投稿

sodoc
sodoc

スコア1

title CHANGED
File without changes
body CHANGED
@@ -77,3 +77,37 @@
77
77
  }
78
78
  ```
79
79
  この "Uncaught ReferenceError: x is not defined" をコンソールを確認しなくてもわかるように画面表示したいです。
80
+
81
+ #### 追記
82
+ イベントリスナを設定してみましたが、結果が以前と何も変わらなかったです。リスナ内の console.log() が実行されていないようなのでリスナが動作していない?のではないかと思います。
83
+
84
+ ```javaScript
85
+ <script>
86
+ export default {
87
+ data() {
88
+ return {
89
+ name: 'Result',
90
+ msg: 'Result',
91
+ htmlDoc:
92
+ '<!DOCTYPE html>' +
93
+ "<html lang='ja'>" +
94
+ '<head>' +
95
+ "<meta charset='utf-8'>" +
96
+ '</head>' +
97
+ '<body style="margin:0;padding:0;">' +
98
+ "<script src='/p5.js/p5.min.js'\><\/script>" +
99
+ '<script><\/script>' +
100
+ '</body>' +
101
+ '</html>'
102
+ }
103
+ },
104
+ mounted() {
105
+ document
106
+ .getElementsByTagName('iframe')[0]
107
+ .contentWindow.addEventListener('error', event => {
108
+ console.log('addEventListener', event)
109
+ })
110
+ }
111
+ }
112
+ </script>
113
+ ```

1

エラーの説明を追記

2022/07/21 03:33

投稿

sodoc
sodoc

スコア1

title CHANGED
File without changes
body CHANGED
@@ -59,3 +59,21 @@
59
59
  ### 補足情報(FW/ツールのバージョンなど)
60
60
 
61
61
  nuxt のバージョンは 2.15.4, p5.js のバージョンは 0.7.2 です。
62
+
63
+ #### エラーサンプル
64
+ たとえば、テキストエリアで以下のように宣言していない変数を使用して実行すると iframe には何も表示されませんが console では "Uncaught ReferenceError: x is not defined" が表示されます。
65
+ ```javaScript
66
+ let position_x = 10;
67
+
68
+ function setup() {
69
+ createCanvas(600, 400);
70
+ }
71
+
72
+ function draw() {
73
+ stroke(0, 0, 0);
74
+ rect(x, 100, 60, 60);
75
+
76
+ position_x += 5;
77
+ }
78
+ ```
79
+ この "Uncaught ReferenceError: x is not defined" をコンソールを確認しなくてもわかるように画面表示したいです。