Script Labs.

Script Labs. では Sleipnir 用 Script の配布・解説を行っています。

Tips

スクリプトを制作する上で便利なテクニックなどを紹介していきます。

Action に関するもの Javascript に関するもの

ダイアログを作る(div版)

現在アクティブなタブのドキュメント上に設定ダイアログなど様々な用途に使える領域を作ります。
body タグに div タグを追加する方法です。

[使用例]
CapMail の設定ダイアログ
MemoPeta メモ部分

[サンプルコード]

//ダイアログを作る関数
function createDialog()
{
	var elm = document.createElement('div');
	var objBody = document.getElementsByTagName("body").item(0);
	if(!objBody) {
		return;
	}
	objBody.appendChild(elm);
}

[備考]
body タグに div タグを挿入するので、現在表示されているページの CSS に影響され、意図しない表示のされ方をする場合があります

IEDockEx で Action からの値を受け取る

Action から IEDockExに値を渡す で出力されたファイルを読み込む方法です。 IEDockEx や IEPanelEx のHTMLソース中に

<script type="text/javascript" src="js/remain.js" id="remain"></script>

の様に外部 Javascript ファイルを読み込むコードを記述し、setInterval などで定期的に script タグの src を読み込み直ことにより実現できます。

[使用例]
CapMail の未読メール数表示

[サンプルコード]

//5秒ごとに値を更新する
//定期的に読み込みなおすのは Action と Javascript を連携させるため。
//必ずしも定期実行する必要は無いです。
setInterval("refresh()", 1000 * 5);
function refresh()
{
	document.getElementById('remain').src = 'remain.js';
}

Action から IEDockExに値を渡す

Action は IEDockEx や IEPanelEx の DOM を扱うことはできません。
しかし、何かしらの処理をしてその結果を IEDockEx 側で受け取る必要が有る場合もあるでしょう。
例えば、CapMail でメールチェックをして未読メール数を取得、それを IEDockEx 上に表示する、といった場合など。
このような場合、結果をファイルに書き込み、それを IEDockEx に読み込ませる方法により実現できます。
これは IEDockEx で Action からの値を受け取る とセットで使用します。

[サンプルコード]

var Sleipnir = new ActiveXObject("Sleipnir.API");
// 書き込みたいファイルのパス
var remain_mail = Sleipnir.AppPath + '..\\plugins\\IEDockEx\\CapMail\\js\\remain.js'; 
var fp = OpenFile(remain_mail, "w" );
fp.Write('var remain = ' + entry.length + ';'); //データを書き込む

[備考]
このコードを組み込んだだけでは、受け取り側の IEDockEx は更新されないので、定期的に値を更新する などを使う必要があります。