ラジオボタンでテキストを切り替える処理
これはinnerHTMLを使っているのが新しいだけで特に新しいことはなし。
innerhtml.html
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>HTMLを読み込む</title> <script type="text/javascript" src="innerhtml.js"></script> </head> <body> <div> <form action=""> <input type="radio" name="loc" value="1" id="tokyo" />東京の天気 <input type="radio" name="loc" value="2" id="nagoya" />名古屋の天気 <input type="radio" name="loc" value="3" id="osaka" />大阪の天気 </form> </div> <br /> <br /> <div id="content">ラジオボタンにチェックを入れてください</div> </body> </html>
innerhtml.js
//グローバル変数の定義 var httpObj; var timerId; var timeout_sec = 10; //タイムアウトの秒数 // テキストの内容を表示 function dispContent(e){ var target_node; if(e.target){ target_node = e.target; } else { target_node = e.srcElement; } var checked_radio = target_node.id; var target_url; if(checked_radio == 'tokyo'){ target_url = 'content1.txt'; } else if(checked_radio == 'nagoya'){ target_url = 'content2.txt'; } else if(checked_radio == 'osaka'){ target_url = 'content3.txt'; } var funcRef = function(text_data){ document.getElementById('content').innerHTML = text_data; } httpRequest(target_url, funcRef) } // 引数に与えられたURLにHTTPリクエストを行い、指定された関数を実行 function httpRequest(target_url, functionReference){ try{ if(window.XMLHttpRequest){ httpObj = new XMLHttpRequest(); } else if(window.ActiveXObject){ httpObj = new ActiveXObject("Microsoft.XMLHTTP"); } else { httpObj = false; } } catch(e){ httpObj = false; } if(! httpObj){ httpObjGenerateFail(); } // タイマーセット timerId = setInterval('timeoutCheck()', 1000); httpObj.open("GET", target_url, true); httpObj.onreadystatechange= function(){ if (httpObj.readyState == 4){ clearInterval(timerId); if (httpObj.status == 200){ functionReference(httpObj.responseText); } else { alert(httpObj.status + ' : ' + httpObj.statusText); return false; } } } httpObj.send(''); } // XMLHttpRequestオブジェクトの生成に失敗した場合 function httpObjGenerateFail(){ alert('ご利用のブラウザは当サイトを利用できません!'); return false; } // HTTPタイムアウトの処理 function timeoutCheck(){ timeout_sec --; if(timeout_sec <= 0){ clearInterval(timerId); httpObj.abort(); alert('タイムアウト'); return false; } } // イベントリスナーをセットする function setListeners(e){ var tokyo = document.getElementById('tokyo'); addListener(tokyo, 'click',dispContent,false); var nagoya = document.getElementById('nagoya'); addListener(nagoya, 'click',dispContent,false); var osaka = document.getElementById('osaka'); addListener(osaka, 'click',dispContent,false); } function addListener(elem, eventType, func, cap){ if(elem.addEventListener){ elem.addEventListener(eventType,func,cap); } else if(elem.attachEvent){ elem.attachEvent('on'+eventType,func); } else { alert('ご利用のブラウザは対応していません!'); return false; } } addListener(window,'load',setListeners,false);