javascriptでprompt関数を用いて、ダイヤログを表示させたいのですが、実行時にエラーが発生します。
main.js
const input = prompt('今日の天気は?次の3つのうち、いずれかの文字列を入力してくささい。(晴れ or くもり or 雨)'); if (input === '晴れ') { alert('今日は気持ちの良い一日になりそうですね!'); } else if( input === 'くもり') { alert('どんよりした天気ですが今日も一日がんばりましょう!'); } else if( input === '雨') { alert('家でゆっくり過ごすのも良いと思いますよ!'); } else { alert('晴れ・くもり・雨以外の文字列には対応していません。'); }
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>【エクササイズ】入力内容に応じてalertメッセージを切り替える</title> </head> <body> <script src="main.js"></script> </body> </html>
以下がエラーです。
ReferenceError: prompt is not defined at Object.<anonymous> (/home/yuya/Desktop/programming/javascript/js_excercise_for_grammer_2/main.js:1:77) at Module._compile (internal/modules/cjs/loader.js:738:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:749:10) at Module.load (internal/modules/cjs/loader.js:630:32) at tryModuleLoad (internal/modules/cjs/loader.js:570:12) at Function.Module._load (internal/modules/cjs/loader.js:562:3) at Function.Module.runMain (internal/modules/cjs/loader.js:801:12) at internal/main/run_main_module.js:21:11
エディタはVScodeを使用しています。
よろしくお願いします
この構文を実行している、HTMLコード、ブラウザ、ブラウザのバージョンを記載してください。
ブラウザによっては、prompt自体が使えない場合があります。
ブラウザはgooglechromeで、バージョンはバージョン: 73.0.3683.103(Official Build) (64 ビット)でした。
htmlコードは以下のとおりです
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>【エクササイズ】入力内容に応じてalertメッセージを切り替える</title>
</head>
<body>
<script src="main.js"></script>
</body>
</html>
なんと・・・。
Chromeで動かないんですか。
エラーの内容は、prompt自体が存在しない、というエラーになります。
Chromeで、そんなことはありえないはずなのですが。
main.jsの中身も、質問文本文に追記していただけませんか?
質問文編集画面にて、<code>ボタンを押すと、ソースコードを記載するための文字が挿入されるので、それを使ってソースコードを記載してください。
HTMLも同様にお願いします。
編集しておきました!
追記ありがとうございます。
もしや、なんか、JavaScriptフレームワークとか使ってます?
main/run_main_module.jsなどと出ているので、何か使ってますよね?
もしそうならば、フレームワーク上のpromptメソッドを参照している可能性があります。
であれば、フレームワークによりますが、フレームワークの処理の中でpromptを使う必要があります。
回答ありがとうございます。
少し調べてみます。
調べてもわからなかった場合、本質問にて、タグに、使用しているフレームワークも追加してください。
javascriptとHTMLだけでは、このような現象はおきませんし、情報が足りなく、回答を得られないかと思います。
<script src="main.js"></script>
↑の行を消した状態でエラーが変わるか切り分けしたほうが良くないですか?
main.jsでwindow.promptもしくはwindowを無効化してあるのかも。
okikashinoaさん>それだ・・・!ありがとうございます。質問者さん、いかがでしょうか?
ブラウザで、index.html を表示させたときのエラーでしょうか?なんか、違うことをやってそうな気がします。
↑x2の私の記載。
main.jsは、ここに記載していただいたコードが全て で有れば、私の回答はまと違いですね。
main.jsの内容をhtmlに直書きして切り分けしてはいかがですか?
回答3件
あなたの回答
tips
プレビュー