// ガジェットサンプル // 名前空間の登録 registerNamespace("ITmedia.Gadget.Example.MyGadget"); // コンストラクタ ITmedia.Gadget.Example.MyGadget = function(p_elSource, p_args, p_namespace) { // 基底のinitializeBaseを呼び出す ITmedia.Gadget.Example.MyGadget.initializeBase(this, arguments); // 各種情報の保存 // 自分自身 var m_this = this; // DOMオブジェクト var m_el = p_elSource; // argsオブジェクト var m_args = p_args; // initializeメソッド this.initialize = function(p_objScope) { // 基底のinitializeメソッドを呼び出す ITmedia.Gadget.Example.MyGadget.getBaseMethod( this, "initialize", "Web.Bindings.Base").call(this, p_objScope); // RSSを受信するネットワークリクエストオブジェクト var response = Web.Network.createRequest( Web.Network.Type.XML, "http://blogs.itmedia.co.jp/index.rdf", {proxy:"rss", numItems: 5}, OnXmlDataReceived); // RSSの受信 response.execute(); } ITmedia.Gadget.Example.MyGadget.registerBaseMethod(this, "initialize"); // disposeメソッド this.dispose = function(p_blnUnload) { // ToDo: ここに終了処理を書く // 基底のdisposeメソッドを呼び出す ITmedia.Gadget.Example.MyGadget.getBaseMethod(this, "dispose", "Web.Bindings.Base").call(this, p_blnUnload); } ITmedia.Gadget.Example.MyGadget.registerBaseMethod(this, "dispose"); // 受信完了時に呼び出されるメソッド function OnXmlDataReceived(response, arg) { // 成功したかどうかを調べる if (response.status == 200) { // 成功している // RSSフィードをパース var m_feed = Start.Parser.ParseRssResponse(response); if (m_feed) { // 展開して出力する var channel = m_feed.channels[0]; for (var i = 0; i < channel.items.length; i++) { var pElement = document.createElement("p"); var aElement = document.createElement("a"); aElement.href = channel.items[i].link; aElement.innerText = channel.items[i].title; pElement.appendChild(aElement); m_el.appendChild(pElement); } } else { m_el.innerText = "パースエラー"; } } else { m_el.innerText = "XMLデータの受信に失敗しました。ステータスは" . response.status; } } } // クラスを登録 ITmedia.Gadget.Example.MyGadget.registerClass( "ITmedia.Gadget.Example.MyGadget", "Web.Bindings.Base");