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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

3回答

715閲覧

運賃検索において、直書きの場合は配列を検知するのに外部の場合検知しない不思議。

sembokulove

総合スコア76

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2024/03/26 22:32

編集2024/03/26 23:18

実現したいこと

先般の質問において、bantanを含む文章から、jrwest_localtrafficを含む文章を検知し、配列を参照するプログラムができました。
ところが、同様に、sanyo_nomalを含む文章から、jrwest_maintrafficを含む文章を検知し、配列を参照しようとするのですが、jrwest_maintrafficが直書きの場合は参照されるものの、外部の場合は全く動きませんでした。
また、直書きの場合においても、エラーが発生し、播但線の運賃が全く動かないというエラーが発生します。
この状況を打開する方法をご教授お願い申し上げます。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> <div> 出発駅: <select name="from" id="stations1"> <option>駅を選択してください。</option> <option value="西明石">西明石</option> <option value="加古川">加古川</option> <option value="姫路">姫路</option> <optgroup label="播但線"></optgroup> <option value="京口">京口</option> <option value="野里">野里</option> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> <option value="D">D</option> </select> </div> <div> 到着駅: <select name="to" id="stations2"> <option>駅を選択してください。</option> <option value="西明石">西明石</option> <option value="加古川">加古川</option> <option value="姫路">姫路</option> <optgroup label="播但線"></optgroup> <option value="京口">京口</option> <option value="野里">野里</option> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> <option value="D">D</option> </select> </div> </div> 距離:<span name="distance"></span>km<br /> 普通運賃:<span name="adult"></span>円<br /> 小児運賃:<span name="child"></span>円<br /> 通勤定期(1か月):<span name="commute_company_1"></span>円<br /> 通勤定期(3か月):<span name="commute_company_3"></span>円<br /> 通勤定期(6か月):<span name="commute_company_6"></span>円<br /> 通学定期(大学生 1か月):<span name="commute_university_1"></span>円<br /> 通学定期(大学生 3か月):<span name="commute_university_3"></span>円<br /> 通学定期(大学生 6か月):<span name="commute_university_6"></span>円<br /> 通学定期(高校生 1か月):<span name="commute_highschool_1"></span>円<br /> 通学定期(高校生 3か月):<span name="commute_highschool_3"></span>円<br /> 通学定期(高校生 6か月):<span name="commute_highschool_6"></span>円<br /> <script src="js 20240326 Tue/faresystem 20240326 Tue.js"></script> <script src="js 20240326 Tue/jrwest_maintraffic 20240326 Tue.js"></script> <script src="js 20240326 Tue/jrwest_localtraffic 20240326 Tue.js"></script> <script src="js 20240326 Tue/sanyo_nomal 20240326 Tue.js"></script> <script src="js 20240326 Tue/bantan 20240326 Tue.js"></script> </body> </html> 乗車区間: <span id="span1"></span> ~ <span id="span2"></span> 間 <script> document.getElementById("stations1").addEventListener("change", function() { // value値を取得 const str1 = this.value; document.getElementById("span1").textContent = str1; }); document.getElementById("stations2").addEventListener("change", function() { // value値を取得 const str1 = this.value; document.getElementById("span2").textContent = str1; }); </script> <!--<script> </script>-->

発生している問題・分からないこと

<script src="js 20240326 Tue/jrwest_maintraffic 20240326 Tue.js"></script>が機能しないです。

エラーメッセージ

error

1Failed to load resource: net::ERR_FILE_NOT_FOUNDというエラーメッセージが出ます。

該当のソースコード

javascript

1 var fares = [ 2 { section: "jrwest_maintraffic_1", adult: 150, child:80, 3 commute_company_1: 4620, commute_company_3: 13170, commute_company_6: 22160, 4 commute_university_1: 2760, commute_university_3: 7830, commute_university_6: 14860, 5 commute_highschool_1: 1380, commute_highschool_3: 3920, commute_highschool_6: 7430}, // 1 区間 6 ];

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

チャットgptやほかの質問サイトでも伺ったが、有益な情報なしです。

補足

特になし

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

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

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

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

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

guest

回答3

0

ファイルパスにスペースが含まれているので、スペースを%20に置き換えるなど試してみてください。

投稿2024/03/26 23:41

Refrain

総合スコア527

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

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

m.ts10806

2024/03/27 04:33

URLになる部分なのでスペースが入ってるのはまず論外なのですけど、 パラメータとかでもないのでどうしてもというときは個人的にはアンダーバーのほうがいい気がしますね。
m.ts10806

2024/03/27 04:59 編集

あとは本件と直接関係のない個人的な意見なので、とりあえず読んでもらうだけとして・・・ サービスのルールをちゃんと守ってれば数時間で解決できていることを、 守らずに何カ月何年と迷子になってる人は多いですね。だいたい他責思考です。 「なぜかこうなる」が決まり文句ですね。コードは書いた通りにしか動いてないのに(その動かないコードを書いたのは自分やろって話は常々) 黙ってバッドしましょう。質問に言及して間違ってたりズレてるとかならともかく、本気で回答になってない回答(というかただの自己都合の愚痴)はさすがに何の価値もないですし。 (あまりにひどい場合は通報しても良いと思いますが、規約違反レベルまではいかないので対応はほぼされません)
guest

0

Failed to load resource: net::ERR_FILE_NOT_FOUND

<script> タグの src 属性値と実際のディレクトリ名・ファイル名が一致していないと思われます。一致していないものを見付けて直しましょう。


<script> タグ内で書いてあるコードをそのまま外部リソースにして src 属性に指定した場合は、動かなくなるということはありません。リンク指定ミスやコードの変更が必ずあるはずです。動く場合のコードと動かない場合のコードをよく見比べましょう。

また、var は一切使うのはやめて、letconst にしましょう。その変更でエラーが新たに出るようなら、それが動かない原因の可能性があります。

投稿2024/03/26 23:04

編集2024/03/28 00:39
int32_t

総合スコア20884

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

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

sembokulove

2024/03/26 23:25 編集

どちらも、他のpcでやっても結果が同じようになるように、相対パスでやっています。 後、貴殿がおっしゃっているのは、ソースを開いた際に、scriptのパスをクリックすれば、そのjavascriptに飛べばいいという話ですよね。 でしたら、結論から申し上げると、全部飛びます。 また、他のscript、具体的には、 <script src="js 20240326 Tue/jrwest_maintraffic 20240326 Tue.js"></script>以外の、 <script src="js 20240326 Tue/faresystem 20240326 Tue.js"></script> <script src="js 20240326 Tue/jrwest_localtraffic 20240326 Tue.js"></script> <script src="js 20240326 Tue/sanyo_nomal 20240326 Tue.js"></script> <script src="js 20240326 Tue/bantan 20240326 Tue.js"></script>の4つは、 上手く作動しています。 もし、答えられない場合には、重複投稿やむなしですよ。
int32_t

2024/03/26 23:31

なるほど、では原因は <script> のURL間違いではないかもしれないですね。 * net::ERR_FILE_NOT_FOUND のエラーに、他の情報は含まれていませんか。対象 URL やエラー発生元など。 * jrwest_maintraffic 20240326 Tue.js の内容を利用する側の JavaScript コードも開示してください。
sembokulove

2024/03/27 02:15 編集

以下が、maintrafficを含む文字列を渡そうとしている、sanyo_nomalのjavascriptになります。 var list = (list ?? []).concat([ { name: ["西明石", "姫路"], distance: 32, section: ["sanyo_nomal_32"] }, { name: ["加古川", "姫路"], distance: 15.7, section: ["sanyo_nomal_16"] }, ]);です。 また、以下のプログラムにより、すでに回答いたした、bantanを含む文字列からlocal_trafficを含む文字列を渡そうとしているjavascriptがこれです。 function calc() { var f = document.querySelector('[name=from]').value; var t = document.querySelector('[name=to]').value; // 駅間に一致するものを探す var eki_info = null; for (var i = 0; i < list.length; i++) { var eki1 = list[i].name[0]; var eki2 = list[i].name[1]; if ((eki1 == f && eki2 == t) || (eki1 == t && eki2 == f)) { eki_info = list[i]; break; } } // 運賃情報を取得 var far_info = null; if (eki_info) { far_info = customCalc(eki_info.section[0]); } // 情報を設定 if (eki_info && far_info) { document.querySelector('span[name=distance]').innerHTML = eki_info.distance; // document.querySelector('span[name=section]').innerHTML = far_info.section + '区間'; document.querySelector('span[name=adult]').innerHTML = far_info.adult; document.querySelector('span[name=child]').innerHTML = far_info.child; document.querySelector('span[name=commute_company_1]').innerHTML = far_info.commute_company_1; document.querySelector('span[name=commute_company_3]').innerHTML = far_info.commute_company_3; document.querySelector('span[name=commute_company_6]').innerHTML = far_info.commute_company_6; document.querySelector('span[name=commute_university_1]').innerHTML = far_info.commute_university_1; document.querySelector('span[name=commute_university_3]').innerHTML = far_info.commute_university_3; document.querySelector('span[name=commute_university_6]').innerHTML = far_info.commute_university_6; document.querySelector('span[name=commute_highschool_1]').innerHTML = far_info.commute_highschool_1; document.querySelector('span[name=commute_highschool_3]').innerHTML = far_info.commute_highschool_3; document.querySelector('span[name=commute_highschool_6]').innerHTML = far_info.commute_highschool_6; } } document.addEventListener('DOMContentLoaded', function () { document.querySelector('select[name=from]').addEventListener('change', calc); document.querySelector('select[name=to]').addEventListener('change', calc); }); function customCalc(section) { var customFarInfo = null; // 新しい条件に基づいて運賃情報を探す if (section.includes("sanyo_nomal")) { section = section.replace("sanyo_nomal", "jrwest_maintraffic"); } else if (section.includes("bantan")) { section = section.replace("bantan", "jrwest_localtraffic"); } // 該当する運賃情報を取得 for (var i = 0; i < fares.length; i++) { if (fares[i].section.includes(section)) { customFarInfo = fares[i]; break; } } return customFarInfo; } * net::ERR_FILE_NOT_FOUND のエラーに、他の情報は含まれていませんか。→ないです。 ご回答いただけない場合、重複投稿は辞さない。
int32_t

2024/03/27 01:02

09:54のコメントのコードの意図が不明です。 jrwest_maintraffic 20240326 Tue.js の内容は質問文の「 var fares = [ ...」で合ってますか? それなら、変数 fares を使っているコードを開示してください。 出し惜しみしないでコード全部を開示した方が話がはやいかもしれません。 > * net::ERR_FILE_NOT_FOUND のエラーに、他の情報は含まれていませんか。対象 URL やエラー発生元など。 これへの返答もしてください。
Refrain

2024/03/27 03:55

To: int32_t様 過去の質問なども拝見した限り、根本的なところが足りないように思えます。 何を答えても高圧的に出てくるだけですので、この方は放置してしまうのがint32_t様にとっても良いかもしれません。
sembokulove

2024/03/27 04:05

未解決のまま、回答を終了します。 重複投稿しても文句を言わないでくださいね。
sembokulove

2024/03/27 04:10

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
int32_t

2024/03/27 04:11

5個連続する <script> の中で、jrwest_maintraffic 20240326 Tue.js のものを最後に持っていくと jrwest_maintraffic については動いて他のものが動かなくなったりしますか? > 未解決のまま、回答を終了します。 質問者がちゃんと情報を出さないと他者からの助力は難しいですよ。
sembokulove

2024/03/27 04:22

まず、このvar faresと var fares = [ { section: "jrwest_maintraffic_1", adult: 150, child:80, commute_company_1: 4620, commute_company_3: 13170, commute_company_6: 22160, commute_university_1: 2760, commute_university_3: 7830, commute_university_6: 14860, commute_highschool_1: 1380, commute_highschool_3: 3920, commute_highschool_6: 7430}, // 1 区間 ]; var listを連動させたいのです。 下が、sanyo_nomalの配列です。 やはり配列に配列を呼び出すのは高度なテクニックなのか…。 var list = (list ?? []).concat([ { name: ["西明石", "姫路"], distance: 32, section: ["sanyo_nomal_32"] }, { name: ["加古川", "姫路"], distance: 15.7, section: ["sanyo_nomal_16"] }, ]);
m.ts10806

2024/03/27 04:40 編集

>重複投稿しても文句を言わないでくださいね。 サービスの運用に反してるので個人の文句ではなく、ルールから外れている言動への指摘です。 https://teratail.com/help/avoid-asking どうしても重複投稿したいのならそれを許容/推奨しているサービスを利用するか、 teratail運営にルールを変えるようにお願いするか、 自分がルール通りにやるしかないですね。 「俺がルールだ」を通したいなら自分でそういうサービス作ってください。 同じスタイルをこの場で続ける限り、同じ反応が返るだけです。 それなら自分がルール通りやるか、業者に丸投げしてやってもらうのがストレスないと思いませんか? 自分の都合のいい反応だけ求めても時間の浪費です(そこまで暇なら別にいいですが不特定多数がいる場でやらないで欲しい)
m.ts10806

2024/03/27 05:02

その行動力をルール守ったり基本を見つめなおすことに使えば、 とっくの昔に他人に聞くことなく自分で解決できるくらいにスキルが身についてるのになぁ。
int32_t

2024/03/27 05:06

> var listを連動させたいのです。 「連動させたい」の意味がわかりません。外部スクリプトにすると動かない問題には関係なさそうです。
sembokulove

2024/03/27 05:34

外部にしようとすると、先ほどの var fares = [ { section: "jrwest_maintraffic_1", adult: 150, child:80, commute_company_1: 4620, commute_company_3: 13170, commute_company_6: 22160, commute_university_1: 2760, commute_university_3: 7830, commute_university_6: 14860, commute_highschool_1: 1380, commute_highschool_3: 3920, commute_highschool_6: 7430}, // 1 区間 ];の部分だけ聞かないのです。 コードの位置は合っています。 つまり読み込めていないのです。 他を当たりましょうか。
Lhankor_Mhy

2024/03/27 05:44

「効かない」というのは「こういう結果になったから効いていないのだろう」という推測であって客観的事実ではないので、「こういう結果になりました」という事実を提示されるようにした方が回答が付きやすいかと思いますよ、他を当たるにしても。
int32_t

2024/03/27 05:48

> 外部にしようとすると、先ほどの... 状況はだいたいわかってます。 13:11 のコメントは試してみましたか? または、開示してないJavaScriptファイルをすべて開示しましょう。他のファイルの影響で動いてたコードが動かなくなることは、よくあります。
sembokulove

2024/03/27 07:20 編集

あれは、自分でここの回答者は知恵をお貸ししていただけないと見限ったからです。 何事も、返事がない場合、いつまでも待っていたってしょうがないという意味です。 1時間以上たって回答がないということは、重複投稿を認めるということですね。 それで、アカウントをブロックすることは、こっちも警察に被害届を出します。
m.ts10806

2024/03/27 08:00 編集

> 1時間以上たって回答がないということは、重複投稿を認めるということですね。 そのような規約やルールはどこにも記載がないので、 (マルチポストを推奨していない記載はある: https://teratail.com/help#posted-otherservice ) あなたが勝手に他人に押し付けている自分ルールでしかありません。 お急ぎでしたらお金を出して業者に丸投げしましょう。以前から言われてるはず。 ここはあなた専用のサポートセンターではなく一般人が厚意で応えてるに過ぎない。 https://teratail.com/help/question-tips#questionTips11 他をあたったところで同じスタンスなら返ってくる反応は同じ。 変に煽ったところで余計に心象が悪くなるだけでしょう。 それにアカウントブロックって何の話ですかね。 teratailにユーザーがユーザーをブロックする仕組みはないです。 警察にとなるとteratail運営も巻き込んでやり取り全部提示することになりますが、 サービスで推奨されるルールを守ってないあなたに正当性はないです。
Lhankor_Mhy

2024/03/28 00:33

> 何事も、返事がない場合、いつまでも待っていたってしょうがない int32_tさんの『jrwest_maintraffic 20240326 Tue.js のものを最後に持っていくと jrwest_maintraffic については動いて他のものが動かなくなったりしますか?』という質問に答えないから回答が来ないんじゃないですかね。コミュニケーションとは相互的なものなので、発信するだけで相手に応答しないのはコミュニケーションではないんです。 ここにいる回答者はだいたい原因に目星がついていたと思いますので、あなたの情報提供待ちだったと思いますよ。Qiitaで解決したみたいなので、もう大丈夫なのだろうとは思いますが。
guest

0

自己解決

もう返答がないので締め切らせていただきます。

投稿2024/03/27 04:11

sembokulove

総合スコア76

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問