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

By t.ashula

はじめに

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

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

目次

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

    いつも通りイベントリスナを使ってイベントを待ち受けて関数を実行させます。今回はウィンドウの読込み終了イベントを使います。 それから、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 オブジェクト

This article is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported license.

Comments

The forum archive of this article is still available on My Opera.

No new comments accepted.