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

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

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

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

HTML

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

Q&A

解決済

4回答

16582閲覧

HTMLが外部のJSファイルを読み込んでくれません

takahiro00

総合スコア84

JavaScript

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

HTML

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

1グッド

3クリップ

投稿2018/11/27 13:29

編集2018/11/30 02:05

前提・実現したいこと

HTMLに外部ファイルのJSを記載したのですが、
読み込んでくれません。
おそらくpathが間違ってると思うのですが、、、、

該当のソースコード

html

1<!DOCTYPE html> 2<html lang="ja" xmlns:th="http://www.thymeleaf.org" 3 xmlns:sec="http://www.thymeleaf.org/extras/spring-security4"> 4<head> 5<script type="text/javascript" src="userEdit.js"></script> 6<meta charset="UTF-8"> 7</head> 8<body onload="proc();"> 9 <div id="output"></div> 10 <div th:replace="common/globalnavi::globalnavi"></div> 11===以下略===

javascript

1 2window.onload = onLoad; 3 4function onLoad() { 5 target = document.getElementById("output"); 6 target.innerHTML = "JavaScriptが実行されました。"; 7 }

croleで出るエラーメッセージ

1GET http://localhost:8080/userEdit.js net::ERR_ABORTED 404

イメージ説明
HTMLとjsは同じ階層に配置しています。
HTMLにjs処理をベタ書きすると動くのですが、外部ファイルにすると動作しません。

DrqYuto👍を押しています

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

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

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

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

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

x_x

2018/11/30 02:22

templatesフォルダが見えるので、直接HTMLファイルを見ているわけではないと思います。何らかのフレームワーク(Spring Boot?)を使っているなら、それが何か書いておきましょう。
guest

回答4

0

情報が少ないですが、質問のようなケースでは、以下の点を確認してみてください。

JavaScriptファイルが読み込めているかを確かめる
ブラウザのコンソールにNOT FOUNDのエラーが出ていませんか?

JavaScriptが正常に処理されているかを確かめる
JSファイルを読み込めているが、エラーで処理がとまっている可能性があります。
ブラウザのコンソールに何かエラーが出力されていませんか?

JavaScriptの処理が、実行されない形で記述されていないかを確かめる
上記の項目でエラーがない場合に、例えばconsole.log('Hello');とだけ書いたファイルを読み込んでみて正常に処理されるのであれば、当該のJavaScriptファイルの内容が実行される前にwindow.onloadが条件を満たして呼び出されてしまっているなどが考えられます。

投稿2018/11/27 13:56

編集2018/11/27 14:02
NozomuIkuta

総合スコア1260

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

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

takahiro00

2018/11/30 02:09

net::ERR_ABORTED 404のエラーが出力されます。 おそらくjsファイルがうまく読み込めていないと思うのですが、 pathも階層もあってるはずなのですが
guest

0

window.onload =<body onload="">は併用できません。

後から書いた方のみが実行されますので、この場合<body onload="proc();">の方だけ実行されています。

window.onload =をbodyタグの中に入れた場合は
window.onload =の方が実行され、<body onload="proc();">の方は実行されなくなります。

上書きされてしまうような状態と考えて良いと思います。

window.onload = を複数書いた場合も、後から書いた方のみ実行されます。

※ MacOS Chrome にて検証

投稿2018/11/27 16:06

編集2018/11/27 16:42
colling

総合スコア798

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

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

takahiro00

2018/11/30 02:06

返信ありがとうございます。 上記試してみたのですが、うまくいかず。。。 ちなみにjs処理をベタ書きするとうまくいくのですが
colling

2018/11/30 02:17

どのように試してみましたか?
guest

0

自己解決

自己解決しました。
thymeleafを使ってたので呼び出し方法を以下のように書かないと外部ファイルを呼び出せないようでした。

<script src="/js/sampleJs.js" th:src="@{/js/userEdit.js}"></script>

投稿2018/11/30 02:16

takahiro00

総合スコア84

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

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

0

これで大丈夫ですが、解決したようですね

js

1window.addEventListener('DOMContentLoaded', function() { 2 onLoad(); 3}) 4function onLoad() { 5 target = document.getElementById("output"); 6 target.innerHTML = "JavaScriptが実行されました。"; 7} 8function proc() { 9 console.log('aaa'); 10}

投稿2018/11/30 02:49

編集2018/11/30 02:52
akihiro3

総合スコア955

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問