2

このXULスクリプトで定義された小さなダイアログを含むFirefox拡張機能を開発しました。

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<prefwindow id="firenowPreferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="Fire.Now" ondialogaccept='onSave();' onload="checkFields();">
<script type="application/x-javascript">function onSave(){ alert('blablabla');}</script>
 <prefpane id="pane1">
  <grid>
    <rows>
      <row align="center"><label control="username">Username</label><textbox id="username"/></row>
      <row align="center"><label control="password">Password</label><textbox type="password" id="password"/></row>
    </rows>
  </grid>
 </prefpane>
</prefwindow>

上記のコードはここで試すことができます

問題は、Linux / Windowsプラットフォーム(両方のFirefox 3.5 / 3.6)ですべてが正常に機能することであり、次のように表示されます。

http://img52.imageshack.us/img52/4210/shot1v.jpg

Mac OSでは、代わりに、ボタンなしで同じものを見ることができます!

ここでXULスクリプトを試してみると、Linux / Windowsを使用している場合、結果はスクリーンショットと同じですが、Macを使用している場合は、テキストのない2つの小さなボタンがあります(これで問題ありませんが、同じxulコードを使用しています。拡張機能、ボタンは表示されません)。

助言がありますか?これはMacOSFirefoxの既知の問題ですか?

4

1 に答える 1

4

ネイティブMacアプリケーションでは、設定はすぐに有効になり、[OK] / [キャンセル]ボタンはありません(たとえば、[システム環境設定]を開きます)。XUL<prefwindow>はこの動作を模倣します。

この「即時適用」動作は、実際には設定によって制御されbrowser.preferences.instantApplyます。Windowsマシンで設定すると、[OK]/[キャンセル]ボタンが消えます。

于 2010-02-11T13:51:33.487 に答える