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

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

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

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

Q&A

解決済

2回答

6706閲覧

jsを別ファイルで作ったら動かなくなりました

koichi2019

総合スコア16

JavaScript

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

0グッド

0クリップ

投稿2019/04/18 02:27

前提・実現したいこと

javascriptファイルを別に作って画像を切り替えたいです。

発生している問題・エラーメッセージ

HTMLの中で<script>タグを使っていたときはうまく切り替わっていたのですが、javascript部分をコピペして別ファイルにしたら動かなくなりました。

エラーメッセージ

該当のソースコード

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <img id="mypic" src="img/image1.jpg" width="100%" alt="中華の画像">
<!-- <script> let pics_src = new Array("img/image1.jpg","img/image2.jpg","img/image3.jpg"); let num = -1; slideshow_timer(); function slideshow_timer(){ if (num == 2){ num = 0; } else { num ++; } document.getElementById("mypic").src=pics_src[num]; setTimeout("slideshow_timer()",2000); } </script> --> <script type="text/javascript" src="main.js"></script> </body>
</html>

javascript

1let pics_src = new Array("../img/image1.jpg","../img/image2.jpg","../img/image3.jpg"); 2let num = -1; 3 4slideshow_timer(); 5 6function slideshow_timer(){ 7 if (num == 2){ 8 num = 0; 9 } 10 else { 11 num ++; 12 } 13 document.getElementById("mypic").src=pics_src[num]; 14 setTimeout("slideshow_timer()",2000); 15}

試したこと

画像の相対パス名を変える

補足情報(ファイルのツリー構造)

「testフォルダ」の中に「imgフォルダ」「jsフォルダ」「index.htmlファイル」があります。画像は「imgフォルダ」内にあります。

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

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

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

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

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

kei344

2019/04/18 02:31

(質問文は編集できます)質問文のHTML/JavaScriptはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
stdio

2019/04/18 02:33

type="text/javascript"っていうところを消せばいけそうな気がしますが...
BeatStar

2019/04/18 02:35 編集

ブラウザ( InternetExplorer, Firefox, GoogleChrome ... )は何をお使いでしょうか? もしお使いのブラウザっていうのがわからないなら、 「Windowsで何もインストールせずにやっている」等のような感じでもいいので書いてください。(本文に) また、kei344さんのおっしゃるようにやってみてください。
azuapricot

2019/04/18 02:43

htmlと同階層にないのに名前だけ書いてては使えるようになるはずもないよーな気がするのはわたしだけでしょーか。
guest

回答2

0

jsでもCSSでもphpでもなんでもですが、外部ファイルに処理を切り出したときに絶対に最初にやるべきこと第1位

実行してすぐに確認できる超簡単な記述を1つだけ書いて動作確認

をやりましょう。
いきなり全部移行しても動かなかったときに問題の切り分けに困るだけです。

jsならalert(1);とかcssならbody{background-color:red;}とかphpならecho 1;とか(1だと何か被るかもしれないのでファイル名でも良いですけど)

これできちんとその書いた内容が確認できれば「利用可能」ということが分かりますし、確認できれば「ファイルのパスがあってない?」「そもそもファイルを置いてない?」「ファイルが破損してる?」と問題の切り分けができます。
js、CSS、画像であればブラウザの開発ツールを見れば「そんなファイルねーよ!」って怒ってくれます(実際には「指定されたファイルは見つかりません」といった旨の404エラーですが)。

いずれにしてもデバッグは覚えましょう。
「言語名 デバッグ方法」とかで検索すればその言語にあったデバッグ方法を紹介する記事が出てきます。

投稿2019/04/18 04:03

m.ts10806

総合スコア80861

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

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

koichi2019

2019/04/18 15:43

ありがとうございました。勉強になりました!
guest

0

ベストアンサー

同じ階層にmain.jsを作成したのなら、画像へのパスを変えなくても良いはずですよ。
JSファイルが見つからない、もしくは画像が見つからないのどちらかだと思います。
ディレクトリ構造の問題のような気がします、

追記:
補足情報に気がつきました。
JSファイルへのパスが間違っています。

html

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

投稿2019/04/18 02:40

編集2019/04/18 02:45
kszk311

総合スコア3404

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

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

miyabi-sun

2019/04/18 02:47

多分これですね。 デベロッパーツール開いてネットワークタブとかコンソールタグとか見れば 画像ファイルの読み込みに失敗してたり、何かしらのエラーが出てると思うのでそれを確認しろ案件でしょうね。
koichi2019

2019/04/18 15:42

ありがとうございました。勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問