質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3817閲覧

Chromeでは動作するも、IE11では反応なし

Yasu0421

総合スコア37

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/05/23 02:18

編集2018/05/23 02:46

お世話になります。
下記のようなコードを作成した場合、Chromeでは取得したデータがalertで
表示されるのですが、IE11では表示されず、また解析モードで確認しても
エラーらしきものも表示されていません。
どこが間違っているのでしょうか? ご教示いただければ助かります。
尚、Chromでは「--allow-file-access-from-files」オプションを付与しています。
どうぞ宜しくお願い致します。

JavaScript

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script src="./jQuery/jquery-3.3.1.min.js"></script> 7 <script> 8 $.when( 9 $.get("./test.json", function(data){ 10 hoge = $.parseJSON(data) 11 }) 12 ).done(function(){ 13 alerthoge(); 14 }); 15 16 </script> 17</head> 18<body> 19 <div>Get external text test</div> 20 <script> 21 var alerthoge = function(){ 22 alert(hoge[0].name); 23 } 24 </script> 25</body> 26</html> 27

上記中のtest.jsonの内容は以下の通りです。

JSON

1[ 2 {"name":"apple","price":150}, 3 {"name":"banana","price":80}, 4 {"name":"orange","price":52} 5] 6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/05/23 02:28

test.jsonの内容をサンプルで結構ですのでご提示願えますか?
m.ts10806

2018/05/23 02:35

同コードでもChromeでも動いていないように思うのですが・・・。
Yasu0421

2018/05/23 02:38

ご連絡有難うございます。test.json添付しました
m.ts10806

2018/05/23 02:40

↑すみません。自身のJSONファイルに問題がありました。やはり実際のJSONファイルをご提示いただいた方が良さそうです。
m.ts10806

2018/05/23 02:42

あれ?質問の編集確定できてないようです。お手数ですが再度お願いします。
Yasu0421

2018/05/23 02:45

申し訳ございません。更新できました
m.ts10806

2018/05/23 02:47

既に回答出ましたが、Chromeにて、hoge = $.parseJSON(data)のところでエラーでています・・
Yasu0421

2018/05/23 02:57

そうですか、こちらでは、エラーも発生なく表示でてまして、その画像を添付してみたのですが、上手くUpできず、恐縮です。
guest

回答1

0

ベストアンサー

IE 11の場合、file:///に対してAjaxを通すにはActiveXObject('Microsoft.XMLHTTP')を生成する必要があります。

jQuery 2系列までは$.ajaxで生成されるXHRオブジェクトをActiveXのものに差し替える技が使えるのですが、jQuery 3ではそうも行かないので、自力でActiveXObject('Microsoft.XMLHTTP')を使った処理を書く必要があるかもしれません。

投稿2018/05/23 02:43

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yasu0421

2018/05/23 02:53

いつもご回答いただき有難うございます。 少し難しいお話になってきたようですね。 要因としては、ローカルにあるファイルの取込み方が原因であり、 IE11では、簡単に許していない為、$.get自体が使えないという 認識であっていますでしょうか?
maisumakun

2018/05/23 02:57

そうですね、自分がリンクした記事にありますが、「file:///」以下をJavaScriptから参照する場合の扱いについては、ブラウザによって大きく異なってきます。
Yasu0421

2018/05/23 03:07

リンク参照させていただきました。 おかげさまで要因が判明し大変たすかりました。お礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問