回答編集履歴

2

.

2023/02/07 06:31

投稿

int32_t
int32_t

スコア20672

test CHANGED
@@ -1,5 +1,7 @@
1
- jQuery の `append()` などで `<script>` を挿入する場合、jQuery は内部でおかしなことをしていて、`load` イベントは起きません。よって、`load` イベントを使う方針では「スクリプトがロードされた後に実行する」という処理は実現できません。
1
+ jQuery の `append()` などで `<script>` を挿入する場合、jQuery は内部でおかしなこと(*1)をしていて、`load` イベントは起きません。よって、`load` イベントを使う方針では「スクリプトがロードされた後に実行する」という処理は実現できません。
2
2
  `append()` はスクリプトの実行が終わってから返ってくるのでやりたい処理を単純に下に続けてもいいですし、`$.getScript()` も使えます。
3
+
4
+ *1: 同期XHRでソースを取ってきてeval()しているとのこと
3
5
 
4
6
  > 問題の箇所だけJavaScriptのままにすることはできますが、可能であればjQueryに書き換えたい
5
7
 

1

ブロック動作

2023/02/07 06:30

投稿

int32_t
int32_t

スコア20672

test CHANGED
@@ -1,4 +1,5 @@
1
- jQuery の `append()` などで `<script>` を挿入する場合、jQuery は内部でおかしなことをしていて、`load` イベントは起きません。よって、この方針では「スクリプトがロードされた後に実行する」という処理は実現できません。どうしても jQuery を使いたいなら、`$.getScript()` を使うのがよいでしょう。
1
+ jQuery の `append()` などで `<script>` を挿入する場合、jQuery は内部でおかしなことをしていて、`load` イベントは起きません。よって、`load` イベントを使う方針では「スクリプトがロードされた後に実行する」という処理は実現できません。
2
+ `append()` はスクリプトの実行が終わってから返ってくるのでやりたい処理を単純に下に続けてもいいですし、`$.getScript()` も使えます。
2
3
 
3
4
  > 問題の箇所だけJavaScriptのままにすることはできますが、可能であればjQueryに書き換えたい
4
5