Jul 16, 2009

Reload Tab On Double-Clickとマルチプルタブハンドラおよびその他のアドオン、テーマとの競合の問題

マルチプルタブハンドラが入ってるとReload Tab On Double-Clickが機能しなくなるという問題について調べてみた。

調べた限りでは、この問題はマルチプルタブハンドラに限らず、タブのバインディングがデフォルトの物から変更されていると起こりうる物のようだ。マルチプルタブハンドラと同じバインディングを使うツリー型タブ情報化タブもそうだし、バインディングを使ってスライスされた画像を貼り付けているサードパーティ製テーマでも起こりうる。

Reload Tab On Double-Clickの「ダブルクリックがタブの中で行われたかどうか」の判定箇所で、「イベントが発行された元々のノードまたはその親がタブかどうか」しか確認されていないためにこの問題が起こっているので、ここをいじって「イベントが発行された元々のノードの祖先にタブがあるかどうか」を見るようにすれば、問題は解決される。例えば以下のような感じ。

e.originalTarget.ownerDocument.evaluate(
  'ancestor-or-self::*[local-name()="tab"]',
  e.originalTarget,
  null,
  XPathResult.BOOLEAN_TYPE,
  null
).booleanValue

ということで作者のkyoさんに連絡はしておいた。後はどうなるかシラネ!

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能