Opera エクステンション:タブ

By t.ashula

はじめに

Opera エクステンションは強力で、HTML や JavaScript、CSS といった Web 標準の技術を使ってデスクトップ版 Opera のボタンやデフォルト CSS などの多くの機能を操ることが出来ます。 この文書では、タブの操作方法を解説します。

Opera エクステンションの作成方法を知りたいなら Opera エクステンションで Hello World! から読み始めるといいでしょう。

目次

  1. タブを作成する
  2. URL を設定したタブを作成する
  3. タブにフォーカスする
  4. タブを閉じる
  5. その後は?
  6. API リファレンス

タブを作成する

ではタブの作成方法から見ていきましょう。 DOM や文書の読込みを待つのに、addEventListener 関数を使っていきます。 次のコードでは、文書の読込みを待つのにイベントリスナーを使っています。 読込みが終わると関数が実行されます。

opera.extension.tabs が存在しているかきちんと確認してから、このオブジェクトが持つタブの操作関数を呼びだします。


window.addEventListener( "load", function(){
  if( opera.extension.tabs.create ) { // check if function exists
    opera.extension.tabs.create();  // create tabs
  }
  else {
    //do nothing
  }
}, false);

URL を設定したタブを作成する

opera.extensions.tabs.create 関数には、引数としてフォーカスするかどうかの真偽値と URL とを持つ TabProperties オブジェクトを一つ与えることが出来ます。 引数として URL を与えられるので、www.opera.com を読み込ませるタブを作ることが出来ます。


window.addEventListener( "load", function(){
  if( opera.extension.tabs.create ) {
    opera.extension.tabs.create( { url:"http://www.opera.com/" } );
  }
  else {
    //do nothing
  }
}, false );

タブにフォーカスする

イベントリスナーと opera.extension.tabs オブジェクトの存在を確認するコードと同様にして色々なやり方でタブを操作することが出来ます。 まず、URL 欄にフォーカスしたタブの作り方は次のようになります。


opera.extension.tabs.create({focused:true})

URL を設定しフォーカスを当てたタブは次のように作ります。


opera.extension.tabs.create({url:"http://www.opera.com/",focused:true})

タブを閉じる

タブを閉じるのもこれまで同様簡単です。タブを作り、1秒後にそのタブを閉じるコードを書いてみましょう。


window.addEventListener( "load", function(){
  if( opera.extension.tabs ) {
    var tab = opera.extension.tabs.create({url:"http://www.opera.com/",focused:true});
    window.setTimeout( function(){
      opera.extension.tabs.close( tab );
    }, 1000);
  }
  else {
    // Couldn't find an opera.extension.tabs object, to fetch and then update the tab
  }
}, false);

その後は?

これで、タブの作成方法、操作方法、そして閉じる方法とを覚えました。 Opera エクステンション API ドキュメントを参照すれば tabs オブジェクトとその関数の詳細を得られるでしょう。 その後は、Opera エクステンションの Windows オブジェクトに手を出すのも良いでしょう。

API リファレンス

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.