这是Mac OS上firefox扩展中的已知问题吗?

时间:2010-02-11 09:17:49

标签: macos firefox xul preferences

我开发了一个firefox扩展,其中包含一个由此XUL脚本定义的小对话框:

<?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>

上述代码可以试用here

问题是在Linux / Windows平台上(在Firefox 3.5 / 3.6上)一切正常,我看到这样的事情:

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

在Mac OS上,相反,我可以看到相同的东西,但没有按钮!

尝试使用XUL脚本here,如果您使用的是Linux / Windows,结果与屏幕截图相同,但如果您使用的是Mac,则有两个没有文本的小按钮(这样会很好,但是在扩展名中使用相同的xul代码,不会显示任何按钮。

有什么建议吗?这是Mac OS Firefox的已知问题吗?

1 个答案:

答案 0 :(得分:4)

在原生Mac应用程序中,首选项会立即生效,并且没有“确定/取消”按钮(例如,打开“系统偏好设置”)。 XUL <prefwindow>模仿了这种行为。

这种“即时应用”行为实际上是由一个pref browser.preferences.instantApply控制的,如果你在Windows机器上设置它,你会看到OK / Cancel按钮消失。