HelloMyScripts

「Hello, World!」な MyScripts 入門ページです。千里の道も一歩から〜


直接スクリプトに書く

// HelloMyScripts-1
// 直接スクリプトに入力します
alert("Hello, MyScripts!");
 

TEXT パラメータを参照する

// HelloMyScripts-2
// TEXT パラメータを参照します
alert("Hello, " + TEXT + "!");
 

実行するときは、以下の URL を開きます。

myscripts://run?title=HelloMyScripts-2&text=MyScripts

TEXT パラメータは汎用的な入力パラメータです。
実行方法に応じて、適切なデータを参照します。

  1. クリップボード
  2. URL内のパラメータ
  3. Open Inで渡されたテキスト
  4. 処理対象スクリプトの本体

いきなり全部を理解するのは難しいので、最初は「いろんなものに使える便利なやつ」程度の認識でもいいかと思います。
詳細はこのページ下部の「実行方法別パラメータ早見表」を参照してください。

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