如何修改现有的Firefox扩展?

时间:2010-06-29 06:53:10

标签: firefox firefox-addon

Delicious提供了一个出色的Firefox插件来管理您的书签。但是,他们不喜欢人们使用Delicious作为私人书签管理器的想法,因此默认情况下“标记为私人”复选框选项设置为“未选中”。

你可以想象,每次我想要为一个页面添加书签时都要检查该框是非常烦人的,正如Delicious明确表示他们没有计划支持默认检查作为设置,唯一的选择是( 1)容忍它并且(2)修改插件,以便默认选中复选框。

我发现与复选框相关的两个地方都在插件的“chrome”文件中。

第一个是:

<checkbox id="cb_noShare" label="&addybookmarks.sharing.label;"
     accesskey="&addybookmarks.sharing.accesskey;"
     bk_tabindex="-1"
     oncommand="ybAddBkShare.removeTwitterFromSend();"
     style="-moz-user-focus: ignore !important;"/>

第二个是

<!ENTITY addybookmarks.sharing.label "Mark as Private">
<!ENTITY addybookmarks.sharing.accesskey "P">
<!ENTITY addybookmarks.sharing.tipHeader "Sharing">
<!ENTITY addybookmarks.sharing.tipContent "Check this option if you want this to be a private bookmark">

不幸的是,对这些进行任何更改会导致 所有 我的插件无法加载,就好像它处于安全模式一样。

发生了什么,我该如何解决它?

非常感谢

1 个答案:

答案 0 :(得分:5)

您应该修改复选框元素(问题中的第一个条目)。默认情况下,您可以通过将 checked =“true”添加为标记的新属性来进行检查:

<checkbox id="cb_noShare" label="&addybookmarks.sharing.label;"
accesskey="&addybookmarks.sharing.accesskey;" bk_tabindex="-1" oncommand="ybAddBkShare.removeTwitterFromSend();"
style="-moz-user-focus: ignore !important;" checked="true"/>

另一个条目是XML实体的定义。不是将字符串直接包含在checkbox标签中作为标签属性的值,而是定义XML实体并使用实体。这允许使用多种语言翻译扩展,具体取决于用户的语言环境,Firefox会以适当的语言显示文本。