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

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

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

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

Q&A

解決済

1回答

1659閲覧

<picuture> <source>で画像がない場合に特定の画像を出すようにしたいです。

g1mkt

総合スコア15

HTML

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

0グッド

1クリップ

投稿2020/11/03 09:20

編集2020/11/04 05:19

webp画像対応しているブラウザだと、1.webpを表示するコードなのですが、
この時、1.webpがない場合にはnoimage.jpgを表示したいです。
どのようにしたら良いかご教示いただきたく。。

現状、GETで403が常に帰ってくる状態です。
よろしくお願いいたします。

html

1<picture> 2 <source type="image/webp" srcset="1.webp" onerror="this.onerror=null;this.src='noimage.jpg';"/> 3 <img class="crop_image" src="3.jpg" alt="3のサムネイル画像" onerror="this.onerror=null;this.src='noimage.jpg';"/> 4</picture>

追記
onerrorが発火し続けてしまうので、onerrorの中にthis.onerror=null;を追加しました。

追記
jsを書いて対応することにしました。

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

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

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

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

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

m.ts10806

2020/11/03 09:54

source はともかくimgのほうはwidth,heightが設定してあれば出ますね。 そもそも「1.webp」が存在する場合に正しく動作してますか?
g1mkt

2020/11/03 14:29 編集

m.ts10806様 「1.webp」が存在する場合は正しく動作します。 存在しない場合、「3のサムネイル画像」の文字列が表示されます。
g1mkt

2020/11/03 11:07

上記正しく動作するというのは、 webp対応ブラウザで「1.webp」の画像が表示されるという意です。
miyabi_takatsuk

2020/11/03 12:34

this.src='noimage.jpg' は動作しておりますか?
g1mkt

2020/11/03 15:54 編集

miyabi_takatsuk様 ●webp対応ブラウザの場合 <source>側のthis.src='noimage.jpg'、<img>側のthis.src='noimage.jpg' どちらも動作せず、「3のサムネイル画像」の文字列が表示されます。 よって、うまく動作していないようです。 ●webp未対応ブラウザの場合 this.src='noimage.jpg' は動作しました。画像表示されました。
miyabi_takatsuk

2020/11/04 04:23

属性実行のJavaScriptでは限界があるように思います。 <script>要素などで、 JavaScript制御をしっかり書かないと難しいように思います。 まずはその方向で、ご自分で調べ、やってみてください。 (今のままJS構文の回答をすると、作業依頼に答える形になる)
g1mkt

2020/11/04 05:18

miyabi_takatsuk様 承知しました!ありがとうございます! HTMLだけで記述したかったのですが、踏ん切りがつきました! 時間ある時にjs書きます!ありがとうございました!
miyabi_takatsuk

2020/11/04 05:21

解決(ではないかもしれませんが)したなら、自己解決の投稿をして、質問を閉じられるとよいかと。 しかし、ひとまず、残しておいて、 JSでしっかり処理する方法見つかったら、自己解決投稿でもいいかもですね。
g1mkt

2020/11/04 05:28

ぬおおお、すみません、閉じてしまいました。。 おっしゃる通りです。注意します。 miyabi_takatsuk様、m.ts10806様 ありがとうございました!
m.ts10806

2020/11/04 05:33

サーバーサイドの言語使えるのでしたら存在チェックとかブラウザ判定して出力調整とか、やれなくもないです。
miyabi_takatsuk

2020/11/04 05:42

確かに、サーバーサイドでやれるならそっちの方が確実ですよね。 JSだと、ファイルの存在チェックしちゃうと、ひとまずエラーになっちゃいますしね 汗 (処理が止まらない程度の軽いエラー)
guest

回答1

0

自己解決

jsを記述して対応します。

投稿2020/11/04 05:21

g1mkt

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問