Opera エクステンション:ウィンドウ
はじめに
Opera エクステンションは HTML や JavaScript、CSS といった Web 標準の技術を使ってデスクトップ版 Opera に対する機能追加を可能にします。
この文書では、エクステンションの API を使ったデスクトップ版 Opera のウィンドウの操作方法を解説していきます。
ウィンドウの操作には Windows
オブジェクトを使います。
Opera エクステンションの基礎的なことが知りたいなら続きを読む前に Opera エクステンションで Hello World! の記事を読むと良いでしょう。
目次
- ウィンドウを作る
- ウィンドウのイベント
- ウィンドウのイベントリスナ
- まとめ
- API リファレンス
-
onfocus
-
onclose
-
oncreate
-
onblur
-
focus
-
close
-
create
-
update
-
blur
ウィンドウを作る
いつも通りイベントリスナを使ってイベントを待ち受けて関数を実行させます。今回はウィンドウの読込み終了イベントを使います。
それから、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つのイベントが定義されてます。
イベントの発生時に、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つのイベントが扱えます。
次のコード片では、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.