[Yahoo!ウィジェット]基本メモ
基本メモ。
ウィジェットエンジンをダウンロードしてインストール。
http://widgets.yahoo.co.jp/download/
開発ツール、リファレンスはここ。
http://widgets.yahoo.co.jp/workshop/
ウィンドウを生成
var field=new Window(); field.title="frasio report"; field.width=480; field.height=480; field.visible=true; field.shadow=true;
画像を配置
var im=new Image(); im.src="images/img00.png"; im.hOffset=10; im.vOffset=10; field.appendChild(im);
テキストを配置
var t=new Text(); t.hOffset=10; t.vOffset=10; t.size=12; t.color="#000000"; field.appendChild(t);
入力テキストを配置
var texinput=new TextArea(); texinput.width=200; texinput.height=150; texinput.bgColor="#ffffff"; texinput.bgOpacity=255; field.appendChild(texinput);
Flashを配置
var f=new Flash(); f.src="flash/item.swf"; f.hOffset=100; f.vOffset=50; field.appendChild(f); //flash上はウィジェットをドラッグできない
Webを配置
var w=new Web(); w.hOffset=200; w.vOffset=200; w.width=280; w.height=280; w.url="http://www.yahoo.co.jp/"; field.appendChild(w); //表示に時間がかかる //jsが効かなかったり文字化けしたりして実用的ではない
オンライン上のxmlをロードして解析する。
get_xml(); function get_xml(){ var url=new URL(); var xmlstr=url.fetch("/test/20/test.xml"); var xml=XMLDOM.parse(xmlstr); var myxml=xml.evaluate("metadata"); var node=myxml.item(0); var str=node.evaluate("string(name)"); log(str); //strにnameタグの「frasio report」という文字列が格納されている }
ローカルのxmlをロードして解析する。
get_local_xml(); function get_local_xml(){ var xmlstr=filesystem.readFile("test.xml"); var xml=XMLDOM.parse(xmlstr); var myxml=xml.evaluate("metadata"); var node=myxml.item(0); var str=node.evaluate("string(name)"); log(str); //strにnameタグの「frasio report」という文字列が格納されている }
テキストファイルをユーザ指定場所に保存する。
save_text("保存するテキスト"); function save_text(target_str){ var destination=saveAs(".txt");//ユーザに保存先を指定させる if(destination==null)return; if(!filesystem.itemExists(destination)){ filesystem.writeFile(destination, target_str); return true; } return false; }
ファイルのドロップを受け付ける
field.onDragDrop=when_file_drop; function when_file_drop(e){ var files=e.items; var ft=get_filetype(files[0]); if(ft!="jpg")return; var img=new Image(); img.src=files[0]; field.appendChild(img); } function get_filetype(filepath){ return filepath.toString().split(".").pop(); }