オブジェクト一覧

Appオブジェクト、DataObjectオブジェクト、CurrentTabオブジェクト、Contextオブジェクト、windowオブジェクト、documentオブジェクト、activeDocumentオブジェクト、Debugオブジェクトは、グローバルで参照できます。

はじめに

Anciaのスクリプトでは、HTMLのようにwindowやdocumentが参照可能です。window、documentは現在のタブのwindow、documentを示します。これは、内容が複雑でないブックマークレットであれば、そのままの内容をスクリプトファイルで保存すれば利用できることを意味しています。ただし、スクリプトのファイルは、Unicodeで保存する必要があります。

Appオブジェクト

  • activeTabオブジェクト
    現在アクティブなTabオブジェクトを返却します。
// アクティブタブのIDを取得
var id = App.activeTab.id;
  • tabCountプロパティ
    現在のタブの数を返却します。
// 現在のタブ数を取得
App.MsgBox(App.tabCount);
  • tabオブジェクト
    指定インデックス(現在のタブの順序で0起算)のタブオブジェクトを返却します。
// 0番目(先頭)のタブオブジェクトを取得
var tab0 = App.tab(0);
  • createTab(index,activate)メソッド
    新しいタブを開き、開いたタブオブジェクトを返却します(ナビゲート無し)。
    • index タブ追加位置。
      省略した場合、アプリケーションのタブ追加位置設定となります。-1は省略が指定されたものとみなします。
    • activate タブのactive指定
      タブをactiveにするときtrue、非アクティブにするときfalseを指定します。省略した場合、アプリケーションの新規タブactive設定に従います。
// アプリケーションの追加位置設定でタブをactiveで作成
var tab1 = App.createTab(-1,true);
// スクリプトの動作状況に応じたindex,active指定でタブを作成
var activate=((Context.tabFlags&0x4)===0);
var tab2 = App.createTab(Context.NewTabPosition,activate);
  • clipboardオブジェクト
    クリップボードオブジェクトを返却します。
// クリップボードのテキストを取得
var txt = App.clipboard.getData("TEXT");
  • openSearch(xml file name)メソッド
    XMLファイルを読み込み、OpenSearchオブジェクトを返却します。
    • xml file name オープンサーチ形式のXMLファイル
      searchフォルダから読み込むXMLファイルを指定します。
 // Google検索.xmlを読み込みopen searchオブジェクトを取得する
 var sch = App.openSearch("Google検索.xml");
 var url = sch.buildUrl("検索キーワード");
  • tabIndex(タブID)メソッド
    タブIDからタブのインデックス(現在のタブの位置)を返します。
    • タブID インデックスを取得したいタブIDを指定します。
 // 現在アクティブなタブのインデックスを取得
 var index = App.tabIndex(App.activeTab.id);
  • NewTab(url,activate,index)メソッド
    URLを指定して新しいタブを開きます。開いたタブオブジェクトを返します。
    • url 開くURLを指定します。
    • activate タブのactive指定
      タブをactiveにするときtrue、非アクティブにするときfalseを指定します。省略した場合、アプリケーションの新規タブactive設定に従います。
    • index タブ追加位置。
      省略した場合、アプリケーションのタブ追加位置設定となります。-1は省略が指定されたものとみなします。
// http://www.google.co.jp をアクティブタブで開く
var tab = App.NewTab("http://www.google.co.jp");
  • execScript(script file)メソッド
    指定したスクリプトを実行します。
    • script file
      実行するスクリプトを指定します。指定したファイルがscriptフォルダから読まれます。
// sample.js reserved\backAll.jsを実行する
App.execScript("sample.js");
App.execScript("reserved\backAll.js");
  • msgBox(message,title,type)メソッド
    メッセージボックスを表示し、押されたボタン結果を返却します。
    • message メッセージ
      表示するメッセージを指定します。省略した場合、空メッセージとなります。
    • title タイトル
      表示するタイトルを指定します。省略した場合、空タイトルとなります。
    • type ボタンタイプ
      メッセージボックスのボタンタイプを指定します。省略した場合、0が指定されたとみなします。ボタンタイプは、次の値の組み合わせで表します。
      • 0x000 - OKボタン
      • 0x001 - OK,Cancelボタン
      • 0x003 - Yes,No,Cancelボタン
      • 0x004 - Yes,Noボタン
      • 0x010 - Error(stop)アイコン
      • 0x020 - Questionアイコン
      • 0x030 - Warningアイコン
      • 0x040 - Informationアイコン
      • 0x000 - デフォルトボタンが1番目
      • 0x100 - デフォルトボタンが2番目
      • 0x200 - デフォルトボタンが3番目
    • 戻り値
      ボタンが押された結果は、次の通りです。
      • 1 - OKボタン
      • 2 - Cancelボタン
      • 6 - Yesボタン
      • 7 - Noボタン
// OK,Cancelボタンで、Cancelをデフォルトボタンとしてメッセージボックスを表示
var ret = App.MsgBox("message","title",0x1|0x100);
  • pathプロパティ
    アプリケーションのフルパス(Ancia.exe)を返却します。
// アプリケーションの実行ファイルフルパスを表示
App.MsgBox(App.path);
  • cacheFile(url)メソッド
    urlに対するローカルキャッシュファイルフルパスを返却します。取得できなかった場合、falseが返されます。
    • url URL
      取得したいURLを指定します。
// ドロップされたURL、または、現在のタブのURLに対するキャッシュパスを表示
App.MsgBox(App.cacheFile(DataObject.url));
  • downloadToCacheFile(url)メソッド
    指定したURL先をダウンロードし、保存したローカルキャッシュファイルフルパスを返却します。失敗した場合、falseが返されます。メソッドは、ダウンロードが完了するまで応答を返しません。
    • url URL
      ダウンロードするURLを指定します。
// ドロップされたURL、または、現在のタブのURL先をダウンロードし、
// 保存したキャッシュパスを表示
App.MsgBox(App.downloadToCacheFile(DataObject.url));
  • pathUndecorate(path)メソッド
    pathについている余計な文字を取り除いた結果を返却します。主にcacheFile()メソッドやdownloadToCacheFile()メソッドの返却結果に対して使用します。
    • path ファイルパス
      ファイルパスを指定します。
// キャッシュファイルと、余計な文字を取り除いたパスを表示
var cache=App.cacheFile(DataObject.url);
var unp=App.pathUndecorate(cache);
App.MsgBox(cache+"\n\n"+unp);
  • saveFileNameDlg(filename,dir,filter type)メソッド
    名前を付けて保存ダイアログを表示し、選択されたファイルフルパスを返却します。選択されなかった場合やキャンセルされたとき、falseが返されます。
    • filename ファイル名
      表示ファイル名を指定します。
    • dir 表示ディレクトリ
      表示するディレクトリを指定します。undefinedを指定したとき、表示フォルダはシステム任せになります。
    • filter type 選択ファイルタイプ
      "allfilter" 全てのファイル(*.*) のみ指定できます。
// C:\を初期表示フォルダとして、名前を付けて保存ダイアログを表示
var s=App.SaveFileNameDlg("保存したいファイル名.png","C:\\","allfilter");
// 選択結果の表示
App.MsgBox(s);
  • inputBox(param)
    複数の入力が可能なInputBoxを表示します。paramにはobject形式かstring形式が指定できます。結果は、jsonでの文字列を返します。
    • param(object)の場合
      // object形式でのInputBox呼び出し
      var input=App.InputBox(
         { caption:"Windowキャプション",
           statics:[{text:"上部表示テキスト"},{text:"下部表示テキスト"}],//2つまで
           inputs:[{label:"Input1(&1):",value:"value1value1"},
              {label:"Input2(&2):",value:"value2value2"},
              {label:"Input3(&3):",value:"value3value3"},
              {label:"Input4(&4):",value:"1234567890",type:"number"},// number: 数値入力のみ
              {label:"Input5(&5):",value:"1234567890",type:"number"}],// 5つまで
           buttons:[{text:"OK"},{text:"キャンセル",type:"default"}]});// default:デフォルトボタン
      // 戻り値input: OKだとjson形式のテキスト、Cancelだとfalseが返却
      // json形式のテキストは以下の通り
      // {"inputs":["value1value1","value2value2","value3value3","1234567890","1234567890"]}
      // eval("("+input+")").inputs[0]のように入力結果を取得できる。
  • param(string)の場合
    // string形式でのInputBox呼び出し
    var input=App.InputBox(
       '{ "caption":"Windowキャプション",
          "statics":[{"text":"上部表示テキスト"},{"text":"下部表示テキスト"}],
          "inputs":[{"label":"Input1(&1):","value":"value1"},
                    {"label":"Input2(&2):","value":"value2"},
                    {"label":"Input3(&3):","value":"value3"},
                    {"label":"Input4(&4):","value:"1234567890","type":"number"},
                    {"label":"Input5(&5):","value:"1234567890","type":"number"}],
          "buttons":[{"text":"OK"},{"text":"キャンセル","type":"default"}]}'); 
    // 戻り値はobject形式と同じ
  • beep(type)メソッド
    beepを鳴らします。
    • type タイプ
      MessageBeepでのbeepのタイプを数値で指定します(指定省略で0xFFFFFFFF)。
  • deleteHistory(deleteFlags)メソッド
    履歴・cookie・キャッシュを削除します。
    • deleteFlags 削除フラグ
      削除する対象を、次の値の組み合わせで指定します。
      • 0x01 - 検索履歴
      • 0x02 - アドレスバー入力履歴
      • 0x04 - 履歴
      • 0x08 - キャッシュ(IE)
      • 0x10 - cookie(IE)
      • 0x20 - 前回起動時のタブ
      • 0x40 - form data
      • 0x80 - passwords
  • getCookie(url,name)メソッド
    cookieを取得します。用途としては、ページの読み込みが完了していなくても、このメソッドからcookieを取得できます。取得できなかったとき、falseを返します。
    • url 取得するURL
      cookieを取得するURLを指定します。
    • name 名前 cookieを取得する名前を指定します。
// cookieを取得し表示
var url="https://secure.nicovideo.jp/secure/login?site=niconico";
var val=App.getCookie(url,"user_session");
App.MsgBox(val,"cookie");
  • getKeyState(virtualKey)メソッド
    キー状態を取得します。押されていればtrueが返ります。押されていなければfalseが返ります。
// shift,ctrlキー状態を取得
App.MsgBox(App.getKeyState(0x10)); // shift 0x10
App.MsgBox(App.getKeyState(0x11)); // ctrl 0x11
  • proxyプロパティ
    proxy設定を取得・設定します。設定には、オプションのユーザ設定プロキシサーバ一覧にあらかじめ追加する必要があります。App.proxy=undefinedでIEの設定を使用します。App.proxy=":direct:";でproxyを使用せず直接接続になります。変更するとすべてのタブで変更が行われます。
// proxy設定表示
alert(App.proxy);
// ユーザ設定プロキシサーバ一覧で設定したtestに変更
App.proxy="test";
// 直接接続に変更
App.proxy=":direct:";
// IEの設定に変更
App.proxy=undefined;

Tabオブジェクト

CurrentTabで現在スクリプト実行中のTabオブジェクトを取得できます。App.activeTabは、常にactiveなTabオブジェクトを返します。スクリプト実行はactiveなタブに対して行われますが、スクリプト実行中のタブ取得は、App.activeTabよりCurrentTabの使用を推奨します。これは、スクリプト実行中にactiveタブが変わっても、CurrentTabが返すタブオブジェクトに変化は無く、App.activeTabは常にactiveなタブを返すためです。

  • browserプロパティ
    browserオブジェクトを返却します。返却されるオブジェクトは、常にトップレベルです。マルチスレッド/プロセスで他のスレッド/プロセスのタブのbrowserオブジェクトを取得することは推奨しません(Xpで固まる現象が出る)。利用対象によりますが、固まり抑止でhtmlプロパティを用意しています。
// 現在のタブでブラウザオブジェクトを取得
var brz = CurrentTab.browser;
brz.Navigate2("http://www.google.co.jp");
// 現在のタブのbody要素を取得
var body = CurrentTab.browser.document.body;
  • closeメソッド
    タブを閉じます。
// 現在のタブを閉じる
CurrentTab.close();
  • zoomプロパティ
    拡大レベル(%)を設定・取得します。IE6の場合、ズーム機能をCSSによりシミュレートします。
// 現在のズーム値を表示
App.MsgBox(CurrentTab.zoom.toString());
// ズームを現在から+50%に設定
CurrentTab.zoom = CurrentTab.zoom + 50;
  • securityプロパティ
    セキュリティを設定・取得します。セキュリティの値は次の値の組み合わせです。 値を変更した後は、browser.Refresh()やNavigate2()を行なうまで、ページに反映されません。
    • 0x10
      イメージを表示します。
    • 0x20
      ビデオを表示します。
    • 0x40
      バックグラウンドサウンドが有効です。
    • 0x80
      スクリプトを実行しません。
    • 0x100
      Javaを実行しません。
    • 0x200
      ActiveXを実行しません。
    • 0x400
      ActiveXをダウンロードしません。
    • 0x100000
      MetaRefreshをBlockします。

      ここから先は、指定はできますが動作するかは保障しません。
      参考 About the Browser Download Control
    • 0x800
      DLCTL_DOWNLOADONLY
    • 0x1000
      DLCTL_NO_FRAMEDOWNLOAD
    • 0x2000
      DLCTL_RESYNCHRONIZE
    • 0x4000
      DLCTL_DOWNLOADONLY
    • 0x8000
      DLCTL_NO_BEHAVIORS
    • 0x10000
      DLCTL_NO_METACHARSET
    • 0x20000
      DLCTL_URL_ENCODING_DISABLE_UTF8
    • 0x40000
      DLCTL_URL_ENCODING_ENABLE_UTF8
    • 0x80000
      DLCTL_NOFRAMES
    • 0x10000000
      DLCTL_FORCEOFFLINE
    • 0x20000000
      DLCTL_NO_CLIENTPULL
    • 0x40000000
      DLCTL_SILENT
    • 0x80000000
      DLCTL_OFFLINEIFNOTCONNECTED
// 現在のセキュリティーを表示
App.MsgBox(CurrentTab.security.toString(16));
// セキュリティをイメージ表示のみに変更する
CurrentTab.security = 0x10|0x80|0x100|0x200|0x400;
CurrentTab.browser.Refresh();
  • idプロパティ
    タブのユニークなIDを返します。
// 現在のタブIDを表示
App.MsgBox(CurrentTab.id.toString());
  • htmlプロパティ
    参照/設定が可能です。設定の場合、タブのHTMLドキュメントに対し、HTMLを書き込みます。参照の場合、topレベルのドキュメントのHTMLをstringとして取得します。

    browserプロパティは、マルチスレッド/プロセスのXP環境で固まる現象が起きますが、htmlプロパティは、マルチスレッド/プロセスであっても、固まらずにアクセスできます。

    また、書き込み先のtabが読み込み中の場合、読み込み完了後、HTMLを書き込みます。そのため、htmlプロパティに設定を行ったとき、書き込みの完了は保障されません(書き込み完了前に制御が返る)。
// 新規タブを開き、HTMLを書き出す
// browserオブジェクトを使用していないため、マルチスレッド/プロセスでも動作
// 例えば、tab.browser.document.write(html)だと固まってしまう、のを回避できる
var html="test test"
, tab=App.NewTab("about:blank");
tab.html=html;
  • translateKey(virtualKey,keyState)メソッド
    ブラウザにキー入力を行います。行えるキーは矢印キーやBackspaceなどで、「A」などは行えません。アプリではvirtualKeyの値はチェックせず、ブラウザへキー入力処理を行っています。もしかすると、virtualKeyによっては、入力を行えるものがあるかもしれません。
  • virtualKey Virtualキーコード
    入力する Virtual-Key Codes の値を指定します。省略できません。
  • keyState キー状態
    Controlまたは、Shiftキー状態を指定します。次の値の組み合わせです。省略時は0が指定されたものとして扱います。
    • 0x4
      Shiftキーが押された状態でtranslateKey()を行います。
    • 0x8
      Controlキーが押された状態でtranslateKey()を行います。
// Backspaceをブラウザへ入力
CurrentTab.translateKey(0x08);
// Ctrl+Backspaceをブラウザへ入力
CurrentTab.translateKey(0x08,0x08);
  • openPopup(URL,name,feature)メソッド
    popupでURLを開きます。openPopupメソッドは、popupをタブで開くアプリ設定であってもタブではなくpopupで開きます。
  • URL
    開くURLを指定します。
  • name 名前のstringを指定
    開くpopupの名前を指定します。_blank,_parent,_self,_topを指定できます。
  • feature
    widthやheightなどopen method (Windows)と同じパラメータを指定できます。ただしtoolbarなどは、まだ未対応です。 width,height,scrollbarsは指定可能です。
// popupでgoogleを開く
var feature="width=500,height=300,scrollbars=yes";
var popup=CurrentTab.openPopup("http://www.google.co.jp","_blank",feature);

clipboardオブジェクト

  • getDataメソッド(format)
    クリップボードから値を取得します。取得する形式を指定できます。
    • format 取得する形式
      • "TEXT" クリップボードからテキストを取得します。
// クリップボードのテキストを表示
App.MsgBox(App.clipboard.getData("TEXT"));
  • setData(format)メソッド
    クリップボードに値を設定します。設定する形式を指定できます。
    • format 設定する形式
      • "TEXT" テキスト形式を設定します。
// クリップボードにテキストを設定
App.clipboard.setData("TEXT","abcdefg");

DataObjectオブジェクト

ドロップアクションでのスクリプト実行のとき取得できるグローバルオブジェクトです。

  • textプロパティ
    ドロップされたテキストを取得します。取得できなかった場合、falseが返されます。
// ドロップされたテキストを表示
App.MsgBox(DataObject.text);
  • urlプロパティ
    ドロップされたURLを取得します。取得できなかった場合、falseが返されます。URLアクションのときは、ナビゲート前で、ナビゲートされようとしているURL、ナビゲート後でナビゲート後のURLを返却します。
// ドロップされたURLを表示
App.MsgBox(DataObject.url);
  • titleプロパティ
    ドロップされたURLのタイトルを取得します。取得できなかった場合、falseが返されます。
// ドロップされたURLのタイトルを表示
App.MsgBox(DataObject.title);
  • imageUrlプロパティ
    ドラッグドロップ元がイメージだった場合、イメージのURLを取得します。取得できなかった場合、falseが返されます。ページがイメージのみのときは、タブのドラッグドロップでもDataObject.imageUrlは、イメージのURLを返却します。data schemeの場合キャッシュのパスをfile schemeで返却します。
// ドラッグドロップされたURLを表示
App.MsgBox(DataObject.imageUrl);
  • htmlプロパティ
    ドロップされたHTMLを取得します。取得できなかった場合、falseが返されます。
// ドロップされたHTMLを表示
App.MsgBox(DataObject.html);
  • selectionHtmlプロパティ
    ドロップされた選択HTMLを取得します。取得できなかった場合、falseが返されます。
// ドロップされたHTMLを表示
App.MsgBox(DataObject.selectionHtml);
  • browserプロパティ
    URLアクションのとき、hitしたブラウザオブジェクトを返却します。CurrentTab.browserは常にトップレベルのブラウザオブジェクトを返却しますが、DataObject.browserは、フレームでhitしたとき、フレームのブラウザオブジェクトを返却するところが異なります。
// ナビゲート後のURLアクションで、hitしたURL、hitしたフレームのURL、topレベルのURLを表示
var url=DataObject.url;
var fUrl=DataObject.browser.LocationURL;
var tUrl=CurrentTab.browser.LocationURL;
App.MsgBox(url+"\n"+fUrl+"\n"+tUrl,"frame");

OpenSearchオブジェクト

App.openSerach()メソッドで返却されるオブジェクトです。

  • buildUrl(term)メソッド
    指定されたtermで検索クエリURLを構築し、返却します(エスケープ処理込み)。encodingはApp.openSearch()で開いたOpenSearchファイルの内容から決定されます。
    • term 検索するキーワードを指定します
// google検索.xml(OpenSearch形式)を読み込み、新規タブでHTML5を検索
var sch = App.openSearch("google検索.xml");
var url = sch.buildUrl("HTML5");
App.NewTab(url);

Contextオブジェクト

スクリプトでの、状況情報を保持します。新規タブ位置や新規タブをアクティブにする設定は、アドレスバーや検索バーなど実行元により異なることがあります。スクリプトではContextオブジェクトを参照することにより、実行元を意識することなく、動作設定を参照できます。

  • NewTabPositionプロパティ
    新規タブを追加する位置を返却します。
  • tabFlagsプロパティ
    タブに関する動作フラグです。次の値の組み合わせです。
    • 0x1
      新規タブを作成すべきであることを示します。
    • 0x2
      新規タブを作成するとき、activeとすることを示します。
    • 0x4
      新規タブを作成するとき、非activeとすることを示します。
// 実行元に依存しない、タブ追加位置、active指定でのタブ作成
// アプリ設定でタブ追加位置が左端、非アクティブなら左端に非アクティブで追加
// 検索バー設定でタブ追加位置が右端、アクティブなら右端にアクティブで追加
var activate=((Context.tabFlags&0x4)===0);
var tab = App.NewTab(url,activate,Context.NewTabPosition);
  • pathプロパティ
    実行しているスクリプトのフルパスを返却します。
// 実行しているスクリプトフルパスを表示
App.MsgBox(Context.path);
  • settingPath(isScript)プロパティ
    スクリプト個別で保存できる設定ファイルフルパスを返します。sample.jsだと、isScriptがfalseでsetting配下のsetting\script\sample.jsonが返却されます。isScriptがtrueだとscriptがあるフォルダと同じscript\sample.jsonが返却されます。isScriptを省略すると、false指定の動作をします。
// setting配下の設定パスを取得
App.MsgBox(Context.settingPath());
// script配下の設定パスを取得
App.MsgBox(Context.settingPath(true));
  • isSettingプロパティ
    オプション設定から起動されたときのみtrueを返却します。それ以外はfalseを返却します。アプリケーションのオプション設定は、スクリプトの個別設定ファイルがあるとき、再度設定を可能にするため、isSettingをtrueとして該当スクリプトを起動します。個別設定があるスクリプトでは、Context.isSettingを参照し、trueの場合は、App.InputBox()等を呼び出し、再度設定を更新することが可能です。
// オプション設定から実行されたとき、スクリプト終了
(function(){
  if(Context.isSetting){
    App.MsgBox("from option");
    return ;
  }
  App.MsgBox("from not option");
}();
  • eventCancelプロパティ
    このプロパティは、URLアクション、ナビゲート前のとき有効です。ナビゲートをキャンセルするときはtrueを指定します。規定では、ナビゲートはキャンセルされません。
// URLアクションナビゲート前で、http://www.zzz.zzz/の移動をキャンセルする
var r=/http:\/\/www.zzz.zzz/i;
Context.eventCancel=r.test(DataObject.url);

windowオブジェクト

現在のタブのHTMLでのwindowオブジェクトそのものを示します。CurrentTab.browser.document.parentWindowと同じものです。alertなど、windowオブジェクトが提供しているものは、そのまま使用することができます。

// 現在のURLを表示する
alert(document.URL);
// こちらでも可
window.alert(document.URL);

documentオブジェクト

現在のタブのHTMLでのdocumentオブジェクトそのものを示します。CurrentTab.browser.documentと同じものです。

// 現在のURLを表示する
App.MsgBox(document.URL);

activeDocumentオブジェクト

現在のタブのHTMLでのactiveなフレームのdocumentオブジェクトを示します。activeなフレームがない、フレームが無い場合はdocumentと同じです。

// 現在のactiveなframeのURLを表示する
App.MsgBox(activeDocument.URL);

consoleオブジェクト

console.log("output debug string");でDebugView for Windows(http://technet.microsoft.com/ja-jp/sysinternals/bb896647 )へ表示を行えます。App.MsgBox()だとボタンを押す必要がありますが、console.log()はその必要がないため大量に内容を確認したい場合に利用できます。console.log()は、自動で改行がつきます。

// イメージのURLを全てdebug viewへ出力
var imgs=document.images;
for(i=0;i<imgs.length;++i){console.log(imgs[i].src);}

LastModified: 2015-04-06