独自変数の解説(アプリ内ヘルプより転載)と使用例を紹介します。
なおアクションの指定(参考:
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
SCRIPT_TARGET
OPTION
myscripts://run?option=URLエンコード済み文字列、またはmyscripts://listing?option=URLエンコード済み文字列で渡された文字列。この文字列はURLスキーム経由で一度設定されるとMyScriptsが生きている間有効になります。
ENCOPTION
URLエンコード済みOPTION。
スクリプト内で使用できる命令
#IMPORT <スクリプト名>
スクリプトをインポートします。複数のインポート文を指定できます。1行につき1つのスクリプトを指定します。インポート文に指定されているスクリプトが最初にすべて実行されます。インポート文に指定されたスクリプト内のインポート文は無視されます。
※また、インポートされる側のスクリプトのアクションは無視されます
例:スクリプトAをスクリプトBでインポートする
スクリプトA
スクリプト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