独自変数

独自変数の解説(アプリ内ヘルプより転載)と使用例を紹介します。

なおアクションの指定(参考:4つのアクション)は、スクリプト編集画面右上の4つのボタンで指定する方法と、スクリプト本文でTARGET=の形で指定する方法がありますが、ここでは説明の便宜上後者の方法を用います。


スクリプト内で使用できる変数


TEXT

クリップボード/URL内のパラメータ/Open Inで渡されたテキスト。
スクリプト処理用スクリプトの場合は、処理対象のスクリプト本文が入ります。
※クリップボード以外のものが指定されている時はそちらが優先されます。
例:コピーしたURLを開く
TARGET = "openurl";
TEXT;
 

ENCTEXT

URLエンコード済みTEXT。
例:コピーした単語をGoogleで検索する
TARGET = "openurl";
"https://www.google.co.jp/search?q="+ENCTEXT;
 

SONG

再生中の曲の情報。title/albumTitle/artistの各属性から取得します。
曲を再生していない場合、SONGがnullになります。
例:再生中の曲のタイトルを表示する
TARGET = "info";
SONG.title;
 

ENCSONG

URLエンコード済みの再生中の曲の情報。title/albumTitle/artistの各属性から取得できます。曲を再生していない場合、ENCSONGがnullになります。
例:再生中の曲のタイトルをGoogleで検索する
TARGET = "openurl";
"https://www.google.co.jp/search?q="+ENCSONG.title;
 

TARGET

このスクリプトに設定されたアクション。openin/copy/openurl/infoのいずれかです。値を変更すると、スクリプト実行後のアクションを変更できます。nullに設定すると、スクリプト実行後に何も行いません。
参考:4つのアクション

IS_HTML

この変数をtrueに設定すると、処理結果をHTMLとしてアクションを実行します。別のアプリにはHTMLとして渡されます。また、デバッグ画面ではHTMLとして表示されます。
例:hogeと書かれたHTMLを表示する
IS_HTML = "true";
TARGET = "info";
"<html><body>hoge</body></html>";
 

例:hogeと書かれたHTMLを他のアプリで開く

IS_HTML = "true";
TARGET = "openin";
"<html><body>hoge</body></html>";
 

IS_ASYNC

この変数をtrueに設定すると、スクリプトで非同期処理を実行できます。非同期処理が完了したときに、ASYNC_DONE("<文字列>")を呼び出す必要があります。
例:Googleで"test"を検索した結果のソースを表示する
IS_ASYNC=true;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
  if (xhr.readyState === 4) { // DONE
    if (xhr.status === 200) { // OK
      ASYNC_DONE(xhr.responseText);
    }
  }
};
xhr.open("GET","https://www.google.co.jp/search?q=test", true);
xhr.send(null);
 
リダイレクトにより通常のソース取得で正常に取得できないページに対しても有効です。

FILENAME

アクションがOpen Inの場合の出力ファイル名を指定します。他のアプリからOpen Inで起動された場合は、入力ファイル名があらかじめ設定されています。
例:ファイル名「ファイル」、本文が「テキスト」のtxtファイルを他のアプリに渡す
TARGET = "openin";
FILENAME = "ファイル";
"テキスト";
 

CLIPBOARD

クリップボード内のテキスト。TEXT変数にURL内パラメータが設定されているときにクリップボードのテキストを利用したい場合に使用します。

ENCCLIPBOARD

URLエンコード済みCLIPBOARD。

IP_ADDRESS

デバイスのIPアドレス。WiFiのIPアドレスが3GのIPアドレスよりも優先されます。どちらのアドレスも取得できないときはnullになります。

例:通信可能ならOK、出来ないならNGを表示する
TARGET = "info";
if(IP_ADRESS){
  "OK";
}else{
  "NG";
}
 

IS_BACKGROUND

バックグラウンドで実行中かどうかを取得します。
※MyScriptsを表示した状態ではfalse、他のアプリを表示した状態でクリップボード監視で実行させた時はtrueが返ります
例:バックグラウンドで実行中ならOK、そうでないならNGを表示する
TARGET = "info";
if(IS_BACKGROUND){
  "OK";
}else{
  "NG";
}
 

SCRIPT_TITLE

スクリプト処理用のスクリプトを実行したときに、処理対象のスクリプトのタイトルを取得できます。

SCRIPT_ENCTITLE

URLエンコード済みSCRIPT_TITLE。
参考:#PROCESS_SCRIPT


SCRIPT_TARGET

スクリプト処理用のスクリプトを実行したときに、処理対象のスクリプトのアクションを取得できます。
参考:#PROCESS_SCRIPT


OPTION

myscripts://run?option=URLエンコード済み文字列、またはmyscripts://listing?option=URLエンコード済み文字列で渡された文字列。この文字列はURLスキーム経由で一度設定されるとMyScriptsが生きている間有効になります。

ENCOPTION

URLエンコード済みOPTION。

スクリプト内で使用できる命令

#IMPORT <スクリプト名>

スクリプトをインポートします。複数のインポート文を指定できます。1行につき1つのスクリプトを指定します。インポート文に指定されているスクリプトが最初にすべて実行されます。インポート文に指定されたスクリプト内のインポート文は無視されます。
※また、インポートされる側のスクリプトのアクションは無視されます
例:スクリプトAをスクリプトBでインポートする
スクリプトA
var a = "hogehoge";
 
スクリプトB
#IMPORT スクリプトA
TARGET = "info";
a;//"hogehoge"
 

#LIB

コード補完機能にこのスクリプトの関数名だけを学習するように指示します。この命令が指定されていない場合、コード補完機能はスクリプト内のすべての単語を学習します。編集時にパフォーマンス上の問題があるときに、この命令を指定します。スクリプトの最初の行の先頭に指定する必要があります。

#PROCESS_SCRIPT

スクリプト処理用のスクリプトとして宣言します。宣言すると、スクリプト編集画面のメニューから呼び出せるようになります。
※スクリプトの処理を行うには、処理される側のスクリプトをスクリプト一覧画面から長押しして「スクリプトを実行...」を選択し、#PROCESS_SCRIPTが指定されたスクリプト一覧の中から処理する側のスクリプトを選択します。
例:処理対象のスクリプトを複製する
TARGET = "openurl";
#PROCESS_SCRIPT
"myscripts://add?title="+ SCRIPT_ENCTITLE + encodeURIComponent("のコピー") + ENCTEXT + "&target=" + SCRIPT_TARGET
 

#HTML

このスクリプトをHTMLファイルとして宣言します。宣言すると、スクリプトの内容がそのままHTMLとして出力されます。スクリプトの最初の行の先頭に指定する必要があります。
例:hogeと書かれたHTMLを表示する
#HTML
<html>
  <body>
    hoge
  </body>
</html>
 

COPY("<文字列>" [, <メッセージ>])

文字列をクリップボードにコピーします。コピー処理はスクリプト実行後に行われるため、この関数を複数回呼び出した場合は、最後の呼び出しのみが有効になります。メッセージを指定するとそのメッセージが文字列の代わりに表示されます。メッセージに""を指定すると、ダイアログ自体が表示されなくなります。
例:hogeという文字列をコピーしつつMyEditorアプリ
を開く

COPY("hoge","");
TARGET = "openurl";
"myeditor:"
 

ASYNC_DONE("<文字列>")

IS_ASYNCをtrueに設定して非同期処理を実行した後にこの関数を呼び出すと、引数の文字列に対してアクションが実行されます。
参考:IS_ASYNC

SAVE_JSON("<キー>", obj)

指定したキーに関連付けてobjをJSONデータとして保存します。保存に成功するとtrue、失敗するとfalseが戻ります。保存データはスクリプト間で共通です。キーが同じ場合、データが上書きされるので注意してください。
※注:現バージョンではJSONデータが消失する場合があるため、一時的な使用目的を除き、残しておきたいデータはスクリプト本文に保存するなどして下さい。
例:スクリプトAでキーhogeに{"a":"b"}という連想配列を保存し、スクリプトBでキーhogeの内容を表示する
スクリプトA
TARGET = "info";
SAVE_JSON("hoge",{"a":"b"});
"保存しました";
 
スクリプトB
TARGET = "info";
JSON.stringify(LOAD_JSON("hoge"))
 

LOAD_JSON("<キー>")

指定したキーに関連付けられたデータを読み込みます。データが無い場合はnullが戻ります。

LOGOUT("<ログ>")

ログ出力を行います。出力されたログはデバッグ画面で確認できます。
※デバッグ画面とは編集画面の▷ボタンで表示される(またはTARGET="info";のスクリプトを実行して表示される)ビューを表示したあとTEXT|HTML|OUTと並んだボタンのOUTを押下して表示される画面です。
例:文字を結合してABCを表示するスクリプトでBまで繋げた時のaを調べる
TARGET = "info";
var a="A";
a+="B";
LOGOUT(a);//デバッグ画面にABと表示
a+="C";
a;//ABC
 

タグ:

+ タグ編集
  • タグ:
最終更新:2013年06月18日 22:30