指定したURLのソースを解析
IE6で遊んでいたら出来たのだけれど、IE上ではnew ActiveXObjectは使えないと思ったら使えるものもある様子。
環境によるのかもしれないが、msxml2.xmlhttpとhtmlfileが使えた。
本など買って勉強すれば常識なのかもしれないが、行き当たりばったりの私にとっては結構な発見だった。
msxml2.xmlhttpのメソッド?などほとんど知らないので、htmlfileと合わせて
試しにyahooの東京の天気で、今日の天気の表だけを抜き取って表示させてみた。
もっと簡単な方法がある気もするが・・・・・・。
スクリプト部分↓
<script type="text/javascript"><!-- var url = "http://weather.yahoo.co.jp/weather/jp/13/4410.html"; var src = getxml(); //ソースを取得 getdoc(); function getxml() { var xml = new ActiveXObject("msxml2.xmlhttp"); xml.open("get", url, 0); xml.send(); return xml.responseText;//Textで全体のソースが返ってくる。xmlだとオブジェクト、htmlはよくわからん xml = null; } function getdoc() { var doc = new ActiveXObject("htmlfile"); doc.write(src); doc.close(); var ele = document.createElement('div');//divを作成 ele.innerHTML = doc.getElementsByTagName("table")[3].innerHTML;//4つ目のテーブルを取得 document.body.appendChild(ele); doc = null; } --></script>
shell.applicationも作成出来たけれど、ファイル操作は出来ないようだった(勿論、HTAにすれば出来るが)
が、フォルダツリーのダイアログを表示させることは出来た。これも私には結構な発見。
だけど果たして、これはJScriptなのかjavaScriptなのか?
typeがjavascriptでもJscriptでも動作するから、共通な気もするがわからん。
追記
URLによってはブラウザがフリーズするみたい。
GIGAZINEのRSSのURLはフリーズした。
msxml2.xmlhttpの他にもmicrosoft.xmlhttpやら数種類あるようだ。
それとサイトによっては、xml.open("get", url, 0)の0をtrue(1か?)にすると読み込める場合がある様子。
true、falseでなにやってんだかまでは知らんけど。
追記
responseHTMLなんてのは存在しなさそう。