スポンサーリンク

動かないコード

JavaScriptの動かないコード (中級編) setTimeoutのタイマーが指定時刻に動かないエラー (JavaScriptがマルチスレッドだという誤解)

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 0から20000までループする。 そのループの途中にタイマーを設定して,ループの進捗を表示する。 <input type="button" value="ループを開始する" onClick="f()"> <div id="div_counter"></div> <div id="div_comment"></div>

JavaScriptの動かないコード (初級編) parseIntで返り値が0になるエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 「2008年12月から何か月経ったか」を計算する。 <input type="button" value="期間を表示" onClick="f()"> 月を選択してください。 → 2009年の <select id="select_month"> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option></select>

JavaScriptの動かないコード (中級編) オブジェクトのプロパティ定義にthisを使って失敗するエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 文字列が改行やスペースを含むかどうか,正規表現で調べる。 <input type="button" value="クリックして表示" onClick="f()"> <script language="JavaScript"> // 文字列が特殊文字を含むかどうか判定するためのオブジェクト。 var obj = { /* …

JavaScriptの動かないコード (中級編) iframe内のDOM要素を別フレームにコピーできないエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 同じフォルダにtenki.htmlがあり,天気が書いてある。その情報を,DOM要素ごと抜き出す。 index.html <body> <input type="button" value="クリックして表示" onClick="f()"><br> <iframe id="ifr" src="tenki.html"></iframe><br> <table> <tbody> <tr id="my_tr"> <td>上のページの情報によれば,今日の…</td></tr></tbody></table></body>

JavaScriptの動かないコード (初級編) 関数が返り値を return できないエラー (セミコロンの罠)

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 現在時刻を表示する。 <input type="button" onclick="f()" value="現在時刻を表示"> <script language="JavaScript"> function f(){ alert( getNow() ); } // 現在時刻の文字列を返します。 function getNow(){ var d = new Date(); // 1:23…

JavaScriptの動かないコード (中級編) iframe内にDOMアクセスできないエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: tenki.htmlの中に,天気が書かれている。 index.htmlのインラインフレーム内に tenki.html を表示して,その内容を解析する。 ※2つのHTMLは,同…

JavaScriptの動かないコード (中級編) 不要なイベントが連鎖で発生してしまう  (バブリングの対処)

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 右図のような「クリックゲーム」を作る。 赤い部分をクリックしたらゲームオーバー。 <div id="jirai" style="background-color:red; width:200px; height:200px;" > 地雷源 <div id="goal" style="background-color:green; width:50px; height:50px; position:relative; top:50px; left:50px;" > 安全地帯 </div></div>

JavaScriptの動かないコード (中級編) イベントの詳細情報を第一引数で取得できない

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) 何かキーを押すと,キーコードを表示します。 <script language="JavaScript"> // キー押下時のイベントリスナを設定 document.onkeydown = f; function f( e ) { // キーコードを表示 alert( </script>…

JavaScriptの動かないコード (中級編) onKeydownイベントが認識されない

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 画面を開いているとき,何かキーボードを押すと,別のページにジャンプする。 <body> 何かキーを押すと,Yahooにジャンプします。 <script language="JavaScript"> function f() { // </script></body>…

JavaScriptの動かないコード (中級編) DOMで子要素を指定する際のエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <body> <table border=1> <tbody id="my_tbody"> <tr><td>この行がコピーされます。</td></tr> </tbody> </table> <input type="button" value="行をコピー" onClick="f()"> <script language="JavaScript"> function f() { // tbody中の最初の行を取得 var old_element = my_tbody.childNodes[0]…</body>

JavaScriptの動かないコード (初級編) with文にまつわるエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 「はい」ボタンと「いいえ」ボタンの押下を区別して応答する。 ボタンのトータルの押下回数も表示する。 <input type="button" value="はい" onClick="f(1)"> <input type="button" value="いいえ" onClick="f(0)"> <script language="JavaScript"> function f( num ) // 引数が 1 :「は…

JavaScriptの動かないコード (中級編) jsonオブジェクトをevalできないエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <input type="button" value="「1」と表示" onClick="f()"> <script language="JavaScript"> function f() { var str = "{x:1}"; // JSONオブジェクトにする var obj = eval(str); // プロパティを表示 alert( obj.x ); } </script>

JavaScriptの動かないコード (中級編) イベントハンドラに同じ関数を2回以上追加したい

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: ボタン押下時に, 2 と表示する。 そのために,0に1足す操作を2回行なう。 <input type="button" value="「2」と表示" id="my_button"> <div id="my_div"></div> <script language="JavaScript"> // 初期化 var a = 0; // a に1足して表示 function f(){ a++;…

JavaScriptの動かないコード (中級編) 動的追加したイベントの実行順序 ( addEventListener vs attachEvent )

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: ボタンへ動的にイベントリスナを追加する。 ボタン押下時に,0, 1, 2 とアラート表示する。 <input type="button" value="「0, 1, 2」と表示" id="my_button"> <script language="JavaScript"> function f0(){ alert( 0 ); } function f1(){ aler…

JavaScriptの動かないコード (初級編) 配列とオブジェクトの宣言エラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <input type="button" value="クリックして表示" onClick="f()"> <script language="JavaScript"> function f() { // 配列 var a = new Array( "H","e","l", "l","o",",", "w","o","r", "l","d","!", ); // Hello,world! と表示 alert( a.join("") ); // オ…

JavaScriptの動かないコード (中級編) Ajax読み込み時に「システムエラー -1072896658」

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: Ajaxを使って,a.htmlに外部ページ(b.php)を読み込む。 下の例ではjQueryを使っているが,べつにprototype.jsでも,素のXMLHttpRequestでもよい。…

JavaScriptの動かないコード (中級編) innerHTMLに閉じタグを書き込む時のエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: innerHTMLに「終了タグ」と「開始タグ」を書き込むことにより,元からあったタグを2分割する。 <div id="div0"> <div id="div1"> 分割前 </div> </div> <input type="button" value="divを分割して2つに" onClick="f()"> <script language="JavaScript"> function f() { // タグを2つに分割…

JavaScriptの動かないコード (中級編) 正規表現で同じ文字の連続を検出したい - 置換前パターン中での後方参照

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 同じアルファベットの連続した並びを,それぞれ1文字にまとめる。 例: "good apple" → "god aple" <script language="JavaScript"> function matomeru( str ) { // 正規表現を…

JavaScriptの動かないコード (中級編) cloneNodeで選択状態が変わるエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <input type="button" onClick="f()" value="「cが選択済みでチェック有りの状態」をコピー" > <div id="div0"> <div id="div1"> <select id="select1"> <option>a</option> <option>b</option> <option selected>c</option> </select> </div></div>

JavaScriptの動かないコード (中級編) splitで文字列を分割する時のエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 言葉の間に句読点の無い文章中に「。」をつけたい。 お早う今日は今晩は今日はお早う。 → お早う。今日は。今晩は。今日は。お早う。 <script language="JavaScript"> // split()</script>…

JavaScriptの動かないコード (中級編) scriptタグの中味を動的に書き換えた時のエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <input type="button" onClick="f()" value="「変更後」と表示"> <script language="JavaScript" id="my_script"> function f(){ alert("変更前"); } // 関数を定義し直す my_script.innerHTML = "function f(){alert('変更後');}"; </script>

JavaScriptの動かないコード (中級編) オブジェクトのprototypeを変更した時のエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 1, a 2, b 3, b という,3種類の値のペアを生成する。 <script language="JavaScript"> // オブジェクトを定義する。 // 2つのメンバ変数 x, y を持つと想定。 var A = function…

JavaScriptの動かないコード (初級編) 関数に配列を渡すときのエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: ["こんにち","は"] という配列を作って,配列の要素を結合して表示。 ["こんにち","わ"] という配列を作って,配列の要素を結合して表示。 <input type="button" value="あいさつを表示" onClick="f()"> <script language="JavaScript"> func…

JavaScriptの動かないコード (初級編) イベントハンドラを動的に追加できない / DOM要素の取得ができない

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <input type="button" value="「1」と表示" id="my_button"> <script language="JavaScript"> // イベントハンドラを設定 document.getElementsById( "my_button" ).onClick = f; function f() { alert( "1" ); } </script>

JavaScriptの動かないコード (中級編) evalでfunctionを作る時のエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 文字列で関数を定義し,eval() で実行する。 <input type="button" value="「1」と表示" onClick="f()"> <script language="JavaScript"> function f() { // 文字列を使って関数を定義 var str = "( function() { alert( 1 ); } )"; //ale…

JavaScriptの動かないコード (中級編) selectの中味を書き換えるときのエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <select id="my_select"> <option>変更前</option> </select> <input type="button" value="セレクトの中身変更" onClick="f()" > <script language="JavaScript"> function f() { //alert( my_select.innerHTML ); // 書き換え my_select.innerHTML = "<option>変更後</option>"; //alert…

JavaScriptの動かないコード (中級編) クロージャを使わない場合に起きるエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: 変数の値を1増やして,表示する。 <input type="button" value="「1」と表示" onClick="f1()" > <input type="button" value="「2」と表示" onClick="f2()" > <script language="JavaScript"> function f1(){ var i = 0; // i の値を 1 増やす関数を, f1 の中に作成 var g = function() { i++; } // i…

JavaScriptの動かないコード (中級編) イベントハンドラが見る値のエラー

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) やりたい事: ページが読み込まれた時刻を,ボタン押下で表示する。 <input type="button" id="my_button" value="このページが読み込まれた時刻を表示"> <script language="JavaScript"> // onload でイベントハンドラを設定する window.onload = function(){ var my_button = …

JavaScriptの動かないコード (初級編) if文の分岐がおかしい

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <select id="my_select"> <option value=1>有り</option> <option value=0>無し</option> </select> <input type="button" onClick="f()" value="判定"> <script language="JavaScript"> function f() { // valueを取得 var i = my_select.options[ my_select.selectedIndex ].v…

JavaScriptの動かないコード (中級編) テーブルに行追加できない

連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <table border="1" id="my_table"> <tr> <td>1行目です。</td> </tr> </table> <input type="button" onClick="f()" value="行を追加"> <script language="JavaScript"> function f() { //alert( my_table.innerHTML ); // 行要素を作成 var e_tr = document.createElement("tr"); var…