我开发了一个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的已知问题吗?
答案 0 :(得分:4)
在原生Mac应用程序中,首选项会立即生效,并且没有“确定/取消”按钮(例如,打开“系统偏好设置”)。 XUL <prefwindow>
模仿了这种行为。
这种“即时应用”行为实际上是由一个pref browser.preferences.instantApply
控制的,如果你在Windows机器上设置它,你会看到OK / Cancel按钮消失。