
JavaScript初心者です。
現在、乱数+乱数=その計算結果という単純な表示を繰り返し続けるだけのプログラムを作成したいと思っているのですが、どうも初心者なので自分のプログラムが悪いところが分からずにいます。
abc.jsというファイルともう一つtest.htmlというファイルを作成して、test.htmlのファイルから
src="abc.js"でファイルを検索して処理を実行しようとしています。そのabc.jsというファイルの中には以下のように記入しています。
window.addEventListener( "load", loadFunc, false );
function loadFunc() {
timerID = setInterval("count_up()",1000);
}
function count_up() {
var a = Math.floor( Math.random() * 100 ) + 1;
var b = Math.floor( Math.random() * 100 ) + 1;
c = new String(a);
d = new String(b);
e = new String(a+b);
document.write(c.fontcolor("red").fontsize(50) + "+".fontsize(50) + d.fontcolor("red").fontsize(50) + "=".fontsize(50) + e.fontsize(50)) ;
document.clear();
}
setIntervalというのがタイマーということがインターネットで書かれていたので、それを入れてみたのですが、計算結果は表示されるのに、1秒ごとに画面が更新されなくて、どうしたら良いのかがわかりません。
また、document.writeって連続で表示させることに適しているのかもよくわからないです。
こういう場合って、htmlの方をどうにかするのでしょうか、それともJavaだけ変更すればできるのでしょうか。
一応以下、htmlで書いてあるプログラムです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="meiryo" />
<title>タイトル</title>
<link rel="stylesheet" href="test.css" type="text/css" />
<script type="text/javascript" src="abc.js"></script>
</head>
<body>
</body>
</html>
すみませんが、修正点を教えてください。
以上、よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
document.write は便利な機能ですが、
残念ながらタイマーとの組み合わせはまず不可能です。
代替として DOM を使うことをオススメします。
https://developer.mozilla.org/ja/docs/DOM/DOM_Re …
その他の気になる点も含めて修正したサンプル
window.addEventListener( "load", loadFunc, false );
function loadFunc() {
_ setInterval( countUp, 1000 ); // 文字列ではなく関数が望ましい
}
function countUp() { // キャメルケースが望ましい
_ var a = Math.floor( Math.random() * 100 ) + 1;
_ var b = Math.floor( Math.random() * 100 ) + 1;
_ var top = document.body;
_ while (top.firstChild) top.removeChild(top.firstChild); // 書き込む前に画面を消去
_ function write(text, color) {
_ _ var s = document.createElement('span');
_ _ s.textContent = text;
_ _ s.style.fontSize = '300%'; // fontsize の代替
_ _ s.style.color = color? color: 'black'; // fontcolor の代替
_ _ document.body.appendChild(s); // document.write の代替
_ }
_ write(a, 'red');
_ write('+');
_ write(b, 'red');
_ write('=');
_ write(a+b);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
window.openでタイトル名の指定
-
document.writeで画面が消える
-
ウェブ上にキーボードを作りた...
-
<a>タグのテキストを取得
-
助けてください‼︎ javascriptで...
-
Javascriptの丸括弧の意味
-
C#OpenCv V4にのエラーに関する...
-
idを使わずにonclickで自身の要...
-
JavaScript window.openで開く...
-
二次元配列を使って順位をだす...
-
複数のRSSを取得した項目を別々...
-
LightBoxで
-
apache VirtualHostが実行されない
-
XMLの空白要素をJavas...
-
WordPressのコンタクトフォーム...
-
サブウインドウから親ウインド...
-
ローカルにあるファイルを検索...
-
同じIDで定義した要素の配列を...
-
RadioButtonListの表示制御
-
mousewheelイベントについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
○歳△ヶ月と×日を計算してくれる...
-
window.openでタイトル名の指定
-
テキストボックスに入力された...
-
Formの値を別のフレームで使いたい
-
記述の仕方を教えて下さい。
-
ジャバスクリプトで空白(スペー...
-
今日の月と日付の1週間後や3日...
-
文字列を時間で入れ替え
-
Javascriptにてページ作成
-
文字サイズ変更ボタンを設置し...
-
iframe内に特定の文字列がある...
-
Cookieの使い方が分からない。
-
for文のiを使ってリンク先のア...
-
promptで入力されたデータをテ...
-
指定した時間になると現れるリンク
-
ウェブ上にキーボードを作りた...
-
innerHTMLにて設定した情報を再...
-
JavaScript 変数をメソッドに代...
-
javscript超初心者です。
-
ブラウザの履歴がおかしくなり...
おすすめ情報