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

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

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

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

Q&A

解決済

1回答

163閲覧

submit前に画像を確認したい

tukino-hikari

総合スコア26

JavaScript

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

0グッド

1クリップ

投稿2019/04/29 02:46

どうしても解決できないので、質問させてください。

submitの前に選択したPDF画像を表示して確認したいのですが、できません。
メタタグには下の様に記述していますし、jQuery.jsファイルの名前や場所も間違いありません。

<script type="text/javascript" src="js/jQuery.js"></script>

画像を表示する部分は下のタグです。

<iframe height="200" src="img/☆☆☆.pdf" id="abc"></iframe>

そして、画像を選択する部分は下のタグです。

<input type="file" name="zumen" id="efg"> <script> $('#efg').on('change',function(e) { $('#abc').attr('src', 'img/★★★.pdf'); }); </script>

何度見ても、これで間違いないと思うのですが、何故画像が表示されないのでしょう。
お分かりになる方がおりましたら、ご指導お願いいたします。

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

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

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

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

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

Lhankor_Mhy

2019/04/29 03:03

<input type="file" name="zumen" id="efg"> に★★★.pdfを入れてアップロードする、という動作でしょうか? それとも、<input type="file" name="zumen" id="efg"> はPDFとは関係のない部分ですか?
m.ts10806

2019/04/29 03:58

そもそもpdfは画像ではないですけど…
tukino-hikari

2019/04/29 17:09

説明不足で申し訳ございません。 <script> $('#zumen2').on('change',function(e) { $('#samnail').attr('src', URL.createObjectURL(e.target.files[0])); }); </script> オブジェクトのURL(PDFファイル)を取得して表示させようとしています。 <iframe height="200" src="img/☆☆☆.pdf" id="abc"></iframe> の状態では☆☆☆.pdfは表示されます。 URL.createObjectURL(e.target.files[0])の部分をテストを兼ねて、★★★.pdfにして表示されるか どうかを試したのですが、表示されませんでした。
miyabi_takatsuk

2019/04/30 00:07

mts10806さんがおっしゃる通り、pdfは画像ファイルではないので、 img要素で表示はできません。 phpなどの、サーバーサイドで、pdfを画像としてレスポンスを返すAPIを用意したりなどすればimg要素で表示できなくもないかと思いますが。
Lhankor_Mhy

2019/04/30 00:19

> miyabi_takatsukさん 質問はiframe要素ですよ? img要素は出てきていません。
Lhankor_Mhy

2019/04/30 01:12

> tukino-hikariさん ★★★.pdf はアップロード前ですよね? そうだとすると、同名のファイルがサーバにないと表示されないかと思いますが、そのようなファイルはありますか?
tukino-hikari

2019/04/30 04:52

>Lhankor_Mhy PDFファイルはサーバーに上げております。
Lhankor_Mhy

2019/04/30 05:04

なるほど。 そうすると、URL直打ちした場合はPDFが表示されるのですね?
tukino-hikari

2019/04/30 05:51

>Lhankor_Mhy はい!その通りです。 そこで、URL.createObjectURL(e.target.files[0])の部分を★★★.pdfと書き換えて試してみたのですが、表示されませんでした。 <script> $('#efg').on('change',function(e) { $('#abc').attr('src', 'img/★★★.pdf'); }); の部分に問題があるのは分かるのですが、何故なのかさっぱり分からずじまいです。
Lhankor_Mhy

2019/04/30 06:05

当方の環境で同じコードを書いてみましたが、再現しませんでした。 開発者ツールに何かエラーなどは出ていませんか? NetWork タブでの応答はどうなっていますでしょうか?
tukino-hikari

2019/04/30 06:14

ありがとうございます。 特に何もエラーは出ていません。 ただ、srcを書き換えるだけのコードなのに・・・><。
Lhankor_Mhy

2019/04/30 06:18

NetWork タブでの応答はどうでしたか? リクエストが飛んでいませんでしたか? それとも、何らかのエラーで返ってきてますか?
tukino-hikari

2019/04/30 06:28

NetWork タブというのが分からないので、ネットで調べてみます><。 今、google clroameのデベロッパーツールを見ていますが、これで良いのでしょうか?
tukino-hikari

2019/04/30 06:34

google clroameのデベロッパーツールのネットワークタブを表示しながら、動作確認しましたが、recording network activityと出たまま、何も録画されていませんでした。
tukino-hikari

2019/04/30 06:38

確認ボタンをクリックすると、色々表示されますから、スクリプトが動いていないということですね。
Lhankor_Mhy

2019/04/30 06:38

とすると、リクエストが飛んでいないわけですね。 change イベント自体は動作しているのでしょうか? コールバック関数に console.log() などを書いて確認されましたか?
Lhankor_Mhy

2019/04/30 06:41

「確認ボタン」とはなんでしょうか?
tukino-hikari

2019/04/30 07:00

今作成しているのが、データ入力画面でPDFファイルを選択した時に、どのPDFファイルが選択されたかを目で見て分かるように横幅200px程度の枠に表示させようとしています。製品データですので、間違いが許されないので極力間違えた場合に気付きやすいようにということです。(確認画面でも、PDFファイルは表示されますが・・・。それは既に表示されるので問題ありません。) 確認ボタンとは、データ入力後にクリックするボタンで、それをクリックすると確認画面に推移します。 そこの部分は問題ありません。
tukino-hikari

2019/04/30 07:08

var objectUrl = URL.createObjectURL( fileList[0] ) ; console.log( objectUrl ) ; これで、確認しましたけど、何も起こらず!です。
Lhankor_Mhy

2019/04/30 07:10

ん? $('#abc').attr('src', 'img/★★★.pdf'); というコードで試しているのではなかったのですか?
tukino-hikari

2019/04/30 07:24

$('#samnail').attr('src', URL.createObjectURL(e.target.files[0])); ★★★.pdfで試していたのですが、本当は上のコードです。 デベロッパーツールのconsoleのタブをクリックしましたら、下の様なエラーが表示されていました! Uncaught SyntaxError: Invalid regular expression flags  jQuery.js:1
Lhankor_Mhy

2019/04/30 07:33

パスをクォーテーションで囲むの忘れると正規表現と読まれることがありますね。 その辺では?
tukino-hikari

2019/04/30 07:39

それは、既に試してみました^^。また、jQueryファイルに問題があるかもしれないと、再度別のjQueryファイルをダウンロードして試した見ました。何か、有るんですよね。これを何とか解決すれば、少しスキルが上がるかと思い、負けずに頑張る59歳のド素人です^^。
tukino-hikari

2019/04/30 07:40

一週間かけるつもりで頑張ります^^。
tukino-hikari

2019/04/30 08:07

ヤッタ~~!((´∀`))ケラケラ。 おすすめ頂いた、公式のURLを入れたら動きました^^。 問題はjQueryファイルにあったようです! ありがとうございました! 解決です!
Lhankor_Mhy

2019/04/30 08:11

ご解決されて何よりです。
tukino-hikari

2019/04/30 08:12

フォローさせていただきました!また、お世話になるかもしれませんが、その時はぜひよろしくお願いいたします!
kei344

2019/04/30 09:24

まだ質問が「受付中」になっていますが、どのように解決したのかを回答文に書き、「解決済」にされてはいかがでしょうか。
guest

回答1

0

自己解決

submitをクリックする前に、選択したPDFファイルを<iframe>で確認したかったのですが、下のスクリプトが動作しませんでした。

<iframe height="200" src="img/.pdf" id="samnail"> </iframe> <script> $('#zumen2').on('change',function(e) { $('#samnail').attr('src', URL.createObjectURL(e.target.files[0])); });   </script>

原因はjQueryファイルにあり、ご指摘いただいた正規のURLを利用しましたら無事に動作いたしました。
ご指摘いただいたURLは下記のURLです。

<script src="https://code.jquery.com/jquery-3.4.0.js" integrity="sha256-DYZMCC8HTC+QDr5QNaIcfR7VSPtcISykd+6eSmBW5qo=" crossorigin="anonymous"></script>

投稿2019/04/30 13:40

tukino-hikari

総合スコア26

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問