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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

427閲覧

【jquery】画像が無い場合は次のプロセスに行かせるにはどうしたら良いですか?

websandbag

総合スコア13

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/11/06 11:39

画像があれば画像を読み込んで表示するということをしたいと思います。
また、ファイルが存在しなければ処理を止めずに次の画像を読むようにしたいとおもいます。

ファイルの有無チェックのために、XMLHttpRequestを使うことにしました。

しかし、エラーを検知してもプログラムが止まってしまいます。
止まらないようにする方法は無いでしょうか?

大元の処理

下記のように、画像があれば画像にONLoadを実行させるとうことをしようとしました。

js

1function AllEvent() { 2 d.Deferred; 3 4 checkImage().then( 5 // 存在する場合 6 () => { loadingProcess }, 7 8 // 存在しない場合 9 return d.reject(); 10 ) 11 return promise(); 12} 13``` 14 15下記のようにイベントを連続させてつねに監視させます。 16非現実的なので、もし方法があれば教えていただきたいのです。 17実際は中で大きな画像を使うので、setintervalは使えません。 18 19```js 20AllEvent() 21.then(AllEvent()) 22.then(AllEvent()) 23.then(AllEvent()) 24.then(AllEvent()) 25.then(AllEvent()) 26``` 27 28### 画像のローディングチェック 29画像の有無を確認するために使います。 30 31```js 32// ローディング画面を出すプロセス 33function checkImage(url) 34{ 35 new Promise(function(resolve, reject) 36 { 37 var xhr = new XMLHttpRequest 38 xhr.open('GET', url) 39 xhr.onload = functon () 40 { 41 if(xhr.status === 200) 42 { 43 return resolve(xhr.response) 44 } else { 45 reject(new Error(xhr.statusText)) 46 } 47 } 48 xhr.onerror = reject 49 xhr.send() 50 }) 51}; 52``` 53 54### 画像のOnLoad処理 55画像のOnLoad。 56 57```sh 58function loadingProcess($target, imagePath) { 59 var d = new $.Deferred; 60 $loadingImage.css('display', 'block'); 61 var image = new Image(); 62 image.onload = () => { 63 $target.css( 64 'background-image', 65 'url(' + image.src + ')' 66 ); 67 $loadingImage.css('display', 'none'); 68 d.resolve(); 69 } 70 image.src = __Domain + 'assets/images/sprites/' + imagePath; 71 72 return d.promise(); 73} 74```

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーを拾ってエラー時もすべてresolveで処理すれば
最終的にPromise.allですべての処理が終わった段階でジャッジできると思います
命題にimgのsrcをどうやって渡すか書いていない(?)のでこれ以上指摘が難しいです

投稿2018/11/07 01:31

yambejp

総合スコア114814

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問