3

XUL ブラウザー タグをいくつかのメソッドで拡張したいのですが、CSS でリンクを作成するたびに、タグからメソッドが削除されるだけです。これが URI が間違っているためなのか、XBL ファイルが間違っているためなのかはわかりません。最も単純な XBL でさえこれを行うため、URI でなければなりません。バインドを chrome/content の「bindings」ディレクトリに配置したいと考えていました。

問題のブラウザータグの loadURI メソッドを呼び出す JS がいくつかありますが、これは既に機能していますが、バインディングをそれにリンクすると、そのようなメソッドがないことを示すエラーが発生します。CSSバインディングを削除すると、再び機能します。

#bwindow{
  -moz-binding:     url("chrome://nameofmyapp/content/bindings/browser.xbl#sbrowser");
}

私が最初に行った XBL はもっと複雑ですが、うまくいかなかったときはシンプルなものを使いました。

<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl"
        xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
         <binding id="sbrowser" extends="xul:browser">
            <content><xul:label value="blah" /></content>
         </binding>
</bindings>

以下は私のクロムマニフェストです。これらはうまくいくようです。肌は間違いなくそうです。

content nameofmyapp content/
skin nameofmyapp default/1.0 skin/default/

ブラウザタグはこんな感じ

<browser onload="browserload()" id="bwindow" type="content" src="about:blank" flex="1"/>

ここでも、CSS を使用して XBL を #bwindow にリンクするまで、すべて正常に動作します。

4

0 に答える 0