Developers › Dev.Opera

Opera エクステンション:ウィンドウ

November 3, 2010 · by t.ashula

はじめに

Opera エクステンションは HTML や JavaScript、CSS といった Web 標準の技術を使ってデスクトップ版 Opera に対する機能追加を可能にします。 この文書では、エクステンションの API を使ったデスクトップ版 Opera のウィンドウの操作方法を解説していきます。 ウィンドウの操作には Windows オブジェクトを使います。

Opera エクステンションの基礎的なことが知りたいなら続きを読む前に Opera エクステンションで Hello World! の記事を読むと良いでしょう。

目次

  1. ウィンドウを作る
  2. ウィンドウのイベント
  3. ウィンドウのイベントリスナ
  4. まとめ
  5. API リファレンス

ウィンドウを作る

いつも通りイベントリスナを使ってイベントを待ち受けて関数を実行させます。今回はウィンドウの読込み終了イベントを使います。 それから、opera.extension.windows.create の存在を確認してから呼び出します。


window.addEventListener( "load", function(){
  if( opera.extension.windows.create ) {
    opera.extension.windows.create();
  } 
  else {
    // Couldn't find an opera.extension.windows.create object.
  }
}, false);

ウィンドウのイベント

windows オブジェクトにインタラクションがあるとイベントが発生します。 たとえば、フォーカスが移ってくると onfocus イベントが発生します。 Opera エクステンションには以下の4つのイベントが定義されてます。

  • onfocus
  • onclose
  • oncreate
  • onblur

イベントの発生時に、opera.postError 関数を使って適切なメッセージを出してみます。 opera.postError 関数の出力はエラーコンソール(メニューバー > ツール > 詳細 > エラーコンソール)で見ることが出来ます。


window.addEventListener( "load", function(){
  if( opera.extension.windows ) {
    opera.extension.windows.onfocus = function( event ){
      opera.postError( "windows is focused" );
    }
    opera.extension.windows.onclose = function( event ){
      opera.postError( "windows is closed" );
    }
    opera.extension.windows.oncreate = function( event ){
      opera.postError( "windows is create" );
    }
    opera.extension.windows.onblur = function( event ){
      opera.postError( "windows loses focus" );
    }    
  }
  else {
    // couldn't find an opera.extension.windows object.
  }
}, false); 

ウィンドウのイベントリスナ

次はイベントリスナについての話をしましょう。 JavaScript のイベントリスナと同じように、Opera エクステンションのイベントリスナにも扱うイベント、そのハンドラ関数、そして真偽値の3つの引数を与えます。 Opera エクステンションのイベントリスナでは以下の4つのイベントが扱えます。

  • focus
  • close
  • create
  • update
  • blur

次のコード片では、addEventListener 関数を使って focus イベントにハンドラ関数を登録しています。 3番目の引数はイベントハンドラ関数が実行されるフェーズを指定するものですが、差し当たって真偽値で false 固定にしておくべきです。

opera.extension.windows.addEventListener( "focus", function(){/* do something */}, false);

addEventListener 関数を使った時と onevent に代入した時とでは、どのように実行されるかに違いがあります。 次のコードのようにした場合、上の行のハンドラ関数は置き換えられてしまうので、下の行のハンドラ関数しか実行されません。


opera.extension.windows.onfocus = function(){ /* do something */ };
opera.extension.windows.onfocus = function(){ /* do other thing */ };

しかし、次のコードでは、どちらのハンドラ関数も登録されて実行されます。


opera.extension.windows.addEventListener( "focus", function(){ /* do something */ }, false);
opera.extension.windows.addEventListener( "focus", function(){ /* do other thing */ }, false);

まとめ

この文書では windows オブジェクトを使ったデスクトップ版 Opera のウィンドウの操作方法について述べました。 より詳しい情報は、Opera エクステンション API リファレンスを参照してください。

API リファレンス

opera.extension.windows オブジェクト

About this article

Published inDev.Opera
DateNovember 3, 2010
Authort.ashula
TagsAPI, opera extensions, Windows, japanese
OriginalInternet Archive