« デジタルトキワ荘が | メイン | RAM 6GBですっ! »

●ShadeWidget 基本テンプレート

2008年4月 4日    

ShadeのWidgetでPythonとjavascriptが混在するのは美しくないので
外部のスクリプトファイルを実行すつように変更
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<link href="shade_widget.css" type="text/css" />
<style type="text/css"></style>
<script src="shade_widget.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">
<!-- 起動時に呼び出す関数 -->
function initialize(){
	//Debug status
	document.debug = false;
	//window size parameter
	windowWidth = 300;
	windowHeight = 200;
	//Debug switch
	if (!document.debug){
	document.getElementById('debug').style.display= 'none';
	}
	//Window size set
	if (!document.debug){
	window.resizeTo( windowWidth , windowHeight );
	}
}
<!-- 絶対パスを取得 -->
function urlParser(path){
	var img=new Image();
	img.src=path;//相対パスをセット
	path=img.src;//絶対パスを保持
	img.src='#'; //実行しているhtmlのurlでロードを止める
	path = path.match(/file:\/\/(.+)/)[1];
	path = decodeURI(path);//URLエンコードされて値が得られるのでデコード
	return path;
}
<!-- 引数で与えられたPythonを実行 -->
function do_Python(f_name){
	f_path = urlParser("./") + f_name;
	py_scr = "execfile('" + f_path + "')";
	window.external.setScript(py_scr);
}
<!-- 引数で与えられたAppleScriptを実行 -->
function do_AppleScript(f_name){
	f_path = urlParser("./") + f_name;
	py_scr ="import commands\n";
	py_scr += "f=commands.getoutput('osascript \"" + f_path + "\" ')\n";
	py_scr += "print f"; //戻り値をメッセージウィンドウに表示
	window.external.setScript(py_scr);
}
</script>
</head>

 <!-- body onloadで起動時に実行する関数を呼び出す -->
 <!-- body onmouseover でWigetクリック時に関数が呼び出される -->
<body bgcolor="#cccccc" onload="javascript:initialize()">

<!-- Pythonスクリプトを呼び出す -->
<input type="button" value="do Pyrhon" onclick='do_Python("test.py");'><br>
<!-- AppleScriptを呼び出す -->
<input type="button" value="do AS" onclick='do_AppleScript("as_test.scpt");'>


</body>
</html>

投稿者 Yukimi` : 2008年4月 4日 22:48