ここから本文です

プログラミング言語 ジャバスクリプトで作成したファイルを開こうとすると、 docu...

yug********さん

2019/8/1919:16:25

プログラミング言語 ジャバスクリプトで作成したファイルを開こうとすると、
documentは宣言されていません。
コード:800A1391
ソース:マイクロソフトJScript実行時エラー
とでます。コードの中身は以下の通りです。

(fu

nction () {
'use strict';
var game = {
startTime: null,
displayArea: document.getElementById('display-area'),
start: function () {
game.startTime = new Date().getTime();
document.body.onkeypress = game.stop;
},
stop: function () {
var currentTime = new Date().getTime();
var.seconds = (currentTime - game.startTime) / 1000;
if (59.0 < seconds && seconds < 61.0){
game.displayArea.innerText seconds + '秒でした。すごい。';
}else {
game.displayArea.innerText = seconds + '秒でした。残念。';
}
if (confirm("OKを押して60秒だと思ったら何かキーを押してください')) {
game.start();
}
})();

原因を教えて下さい。
ご回答お願いします。

補足表示されている ' はアポストロフィです。
見づらくて申し訳ありません。

閲覧数:
57
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

glo********さん

編集あり2019/8/2018:11:19

document というのは
ブラウザで開いたページの中身です。

.js ファイルを直接ダブルクリックなどで開いても
ブラウザで開いたページなど存在しませんし
そもそもその前に
WSH の JS(JScript) として実行されます。
ブラウザの JavaScript とは基本無関係です。

「Windows Scripting Host 入門編」
http://www2f.biglobe.ne.jp/~takan/javac/js/wsh/tip_first.htm


  

--- 以下【編集】によって追加 ---------------


回答後に気付きましたが,
ご質問のスクリプトを
ブラウザ の JavaScript だとして
見なおしてみましたがかなり変ですよ。


「}」の数が不足していたり
「=」が抜けている部分があったり
文字列の開始&終了が「"」と「'」でチグハグになっていたり
var.seconds とかいう奇妙なものが登場したり
とにかく変で無事に動作するはずがありません。



元は WSH 用の JS として作られたのでしたら
文字コードは「Shift-JIS」でしょうか???

良くわかりませんが...,
文字コードは「Shift-JIS」であるものとして以下を続けます。



その JS の「修正」と「使い方」例ですが,
任意のフォルダに
例えば「game.js」というファイル名で
私が書き直した下記コード↓を保存します。



(function(){
  'use strict';
  var game = {
    startTime: null,
    displayArea: document.getElementById('display-area'),
    start: function(){
      game.startTime = new Date().getTime();
      document.body.onkeypress = game.stop;
      document.body.focus();
    },
    stop: function(){
      var currentTime = new Date().getTime();
      var seconds = (currentTime-game.startTime)/1000;
      if (59.0 < seconds && seconds < 61.0){
        game.displayArea.innerText = seconds+'秒でした。すごい。';
      }else {
        game.displayArea.innerText = seconds+'秒でした。残念。';
      }
    }
  }
  if(confirm('OKを押して60秒だと思ったら何かキーを押してください')){
    game.start();
  }
})();



そして
上の「game.js」を保存したフォルダと同じフォルダに
例えば「test.html」というファイル名で
私が作った次のコードを保存します。



<html>
<head>
<meta charset="shift_jis">
<title>Test</title>
</head>
<body>
<div id="display-area"></div>
<script type="text/javascript" src="game.js"></script>
</body>
</html>



そして,
ローカルでも JavaScript(アクティブ コンテンツ) が動作するように設定してあるブラウザで
上の「test.html」を開きます。


    任意のフォルダ
        ├game.js
        └test.html ←ブラウザで開く


すると
「60秒当てゲーム」が楽しめるようになると思います。

  • 質問者

    yug********さん

    2019/8/2116:07:11

    すみません。初心者なので…
    僕はUTF-8でやって、一応htmlファイルも作っていました。最初に書いておくべきでしたね。申し訳ございません。

    それにしても、こんなにご丁寧にありがとうございます!わざわざ編集してくれたコードまでかいてくださって。
    Shift-JISに変えてあなたのコードを試したところ、しっかり動作してくれてました。
    本当に感謝します。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/8/21 16:07:54

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

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる