« デジタルトキワ荘が | メイン | 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 |