「Hello, World!」な MyScripts 入門ページです。千里の道も一歩から〜
直接スクリプトに書く
// HelloMyScripts-1
// 直接スクリプトに入力します
alert("Hello, MyScripts!");
TEXT パラメータを参照する
// HelloMyScripts-2
// TEXT パラメータを参照します
alert("Hello, " + TEXT + "!");
実行するときは、以下の URL を開きます。
myscripts://run?title=HelloMyScripts-2&text=MyScripts
TEXT パラメータは汎用的な入力パラメータです。
実行方法に応じて、適切なデータを参照します。
- クリップボード
- URL内のパラメータ
- Open Inで渡されたテキスト
- 処理対象スクリプトの本体
いきなり全部を理解するのは難しいので、最初は「いろんなものに使える便利なやつ」程度の認識でもいいかと思います。
詳細はこのページ下部の「実行方法別パラメータ早見表」を参照してください。
CLIPBOARD パラメータを参照する
// HelloMyScripts-3
// CLIPBOARD パラメータを参照します
alert("Hello, " + CLIPBOARD + "!");
赤裸々な直近の黒歴史を晒します(クリップボードの中身を表示します)。
つまり「MyScripts」をコピーしていれば、「Hello, MyScripts!」となります。
OPTION パラメータを参照する
// HelloMyScripts-4
// OPTION パラメータを参照します
alert("Hello, " + OPTION + "!");
実行するときは、以下の URL を開きます。
myscripts://run?title=HelloMyScripts-4&option=MyScripts
TEXT パラメータと似ている印象を持たれたかもしれませんが、寿命が違います。
TEXT は実行するたびに変わりますが、OPTION は最後に明示的に指定した値を(アプリを終了するまで)引継ぎます。
OPTION を使うスクリプトは、意図した通りに動作させるためには、実行方法に気をつける必要があります。
LOAD_JSON で読み込む
// HelloMyScripts-5
// データをファイルに保存します
SAVE_JSON("HelloMyScripts", "MyScripts");
// HelloMyScripts-6
// データをファイルから読み込みます
var str = LOAD_JSON("HelloMyScripts");
alert("Hello, " + str + "!");
HelloMyScripts-5、HelloMyScripts-6 の順に実行してください。
スクリプトで処理した内容を、SAVE_JSON で保存し、(別のスクリプトからも) LOAD_JSON で読み込むことができます。
今回は "HelloMyScripts" という言葉を合言葉(key)にしています。
スクリプトの設定などを保存させるのにとても便利なのですが、放置するといつまでもゴミデータ残るので、使わなくなったら削除を忘れずにしましょう。
// HelloMyScripts-7
// データを初期化します
SAVE_JSON("HelloMyScripts", null);
実行方法別パラメータ早見表
実行方法 |
TEXT |
CLIPBOARD |
OPTION |
通常実行 |
ク |
ク |
× |
Open In |
本 |
ク |
× |
URL |
t or ク |
ク |
○ |
スクリプト処理 |
本 |
ク |
× |
実行方法
- 通常実行
- スクリプトの一覧から、スクリプトを実行する
- Open In
- 他アプリから、Open In で開く
- URL
- リンクや JavaScript から myscripts://run?title=〜 を開く
- スクリプト処理
- スクリプト処理スクリプト実行する
記号の意味
- 本
- テキスト全体 or スクリプト全体
- t
- URL内の text パラメータで指定したテキスト
- ク
- クリップボードのテキスト
- ○
- オプション変更可能
- ×
- オプション変更不可能
ポイント
- URL を開くときの TEXT パラメータは、textを指定したか否かによって動作が変わる
- OPTIONの値を変えるには option パラメータを指定した URL を開く
実行方法による分岐
応用として、ユーザがどのようにスクリプトを実行したかによって、処理を切り分けることができます。
#PROCESS_SCRIPT
TARGET = "info";
if (SCRIPT_TITLE === null) {
if (TEXT === CLIPBOARD) {
alert("クリップボード");
} else {
alert("text パラメータ");
}
} else {
alert("スクリプト本文");
}
TEXT;
たまたまクリップボードと text パラメータのテキストが一致した場合は、クリップボードと表示されます。
最終更新:2013年02月14日 07:45