JavaScriptの直接実行

このページの目的

前のページでは、Rice経由でJavaScriptコードを実行する方法について説明しました。このページでは、JavaScriptを直接実行する方法を学んでいきます。


目次:


ファイルドロップ

ファイル選択ダイアログ

再実行

即時関数化

ファイルI/O

ファイルドロップ

スクリプトタイルに.jsファイルをドロップすることでJavaScriptを実行できます。

スクリプトタイルとは、ブラウザ右側の彩色された領域です。左のタイルにドロップすればMain-ブラウザで、右ならSub-ブラウザで実行されます。

ファイル選択ダイアログ

ファイル選択ダイアログから.jsファイルを選択することでも実行できます。ファイル選択ダイアログは、Alt + Rキーかスクリプトタイルをクリックすることで開きます。

再実行

Alt + Eキーで前回実行されたスクリプトが再実行されます。

即時関数化

直接実行では、指示されなければJavaScriptコードの即時関数化は行われませんが、前のページで述べたように即時関数化には様々な利点があります。

そこで、直接実行にも即時関数化の方法が用意されています。直接実行ではJavaScriptコードの中に命令を直接書き込むことで即時関数化を行います。

"///immed"と"///async"が即時関数化命令です。JavaScriptコードの先頭が、これらの文字列ならば即時関数化が行われます。

1:

alert(token);

上記のJavaScriptコードに///immedを付与します。

1:

///immed

2:

alert(token);

即時関数化は以下の様になります。1行目と4行目が付加されます。

1:

(function(token){

2:

///immed

3:

alert(token);

4:

}("0f8fbd59d9cb769fa16570867728950e"));

上記のJavaScriptコードに///asyncを付与します。

1:

///async

2:

alert(token);

即時関数化は以下の様になります。1行目と4行目が付加されます。

1:

(async function(token){

2:

///async

3:

alert(token);

4:

}("0f8fbd59d9cb769fa16570867728950e"));

ファイルI/O

直接実行ではJavaScriptから返り値を受け取ることができません。その代わりに簡単なファイルI/Oが拡張機能として用意されています。


JavaScript : window.cooker.storage オブジェクト

1:Write(token, filename, data, append)ファイルにテキストデータを書き出します。非同期関数です。
2:Read(token, filename)ファイルからテキストデータを読み出します。非同期関数です。

ファイル書き出し:

1:

window.cooker.storage.Write(token, "example.txt", "data string", true);

第一引数token32桁の数値文字列。即時関数化で与えられます。
第二引数filenameファイル名。
第三引数dataデータ文字列。
第四引数append真偽値。追加=true。上書き=false。

第三引数にはファイル名だけを与えてください。ファイルI/OはCookerの実行ディレクトリ内のstorageサブディレクトリの直接の子ファイルに制限されています。

パスを与えた場合には、パスからファイル名だけを取り出してstorageサブディレクトリの直接の子ファイルと見なして処理します。


ファイル読み込み:

1:

let data = await window.cooker.storage.Read(token, "example.txt");

第一引数token32桁の数値文字列。即時関数化で与えられます。
第二引数filenameファイル名

ファイル名に注意してください。Write()と同様に制限されています。

ファイル内のデータを一括して取り出すことに注意してください。

前のページで説明した他の拡張機能も同じように使用できます。

Copyright © Cooker All rights reserved.