fenrirで気温を確認する
グーグルが天気も教えてくれるようになったのと、WSHでもjQueryが使いたかったのでやってみた。
WSHでDOM (Shibuya.js in Kyoto) - てっく煮ブログでWSHでDOMは使えないとなってたけど、
ActiveXObjectのhtmlfileでいけることがわかった。
以下のコードを拡張子をwsfでfenrirのcmdフォルダに保存(例えば「kion.wsf」とか)
<job> <script language="JScript"> var html = new ActiveXObject("htmlfile"); var window = html.parentWindow; var navigator = window.navigator; var document = window.document; var location = document.location; window.ActiveXObject = {}; </script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" /> <script language="JScript"> var url = "http://www.google.co.jp/search?q=天気 "+ WScript.Arguments.item(0); var $ = window.$; $.ajax({ url: url, async: false, complete: function(res){ html.write(res.responseText); WScript.Echo($('div.e b:contains("°C")').text()); } }); </script> </job>
ちょっと説明
- 「html = new ActiveXObject("htmlfile")」でwindowオブジェクトを作って、windowとかdocumentを定義しなおす。
- jQueryの通信が終わったところで、「html.write(res.responseText)」でDOMが使えるようにする。
- ただし、WSHではsetIntervalが動作しないので、非同期通信が使えなかった。
- wsfについては、http://msdn.microsoft.com/ja-jp/library/cc392507.aspx
fenrirの設定
dataフォルダにある「instant.ini」に以下を追加(コマンドを「/k」とする場合)
/k=""%cmddir\kion.wsf" 京都"