在Firefox中通过bookmarklet更改:config参数

时间:2012-06-01 16:34:10

标签: javascript firefox bookmarklet

在Firefox中,我可以编写一段JavaScript代码(并将其分配给书签)来更改about:config参数吗?

2 个答案:

答案 0 :(得分:1)

不,你不能。当您单击书签时,Bookmarklet将以您正在查看的网页的权限运行,并且网页无法更改用户首选项...

答案 1 :(得分:1)

由于书签条和菜单的上下文,您无法查看自定义按钮:' https://addons.mozilla.org/en-US/firefox/addon/custom-buttons/

它运行在' chrome'上下文作为XUL叠加层,因此可以访问about:config settings。

这是我制作的一个示例脚本,用于更改后备字符编码'当没有在HTML标题中指定编码时,Shift_JIS'日语:

(主代码标签)

/* toggle between SHIFT_JIS and 'default for locale' character encoding. */

var prefsManager = Components.classes["@mozilla.org/preferences-service;1"]
                    .getService(Components.interfaces.nsIPrefBranch);
var defaultCharEncoding = prefsManager.getCharPref( "intl.charset.fallback.override" );

if ( defaultCharEncoding !== "Shift_JIS" ) {
/* change button icon to the hiragana 'あ'. Originally I had a base64 encoded PNG here. */
    document.querySelector('toolbarbutton#custombuttons-button1.toolbarbutton-1.chromeclass-toolbar-additional').image="file:///path/to/icon/a-jp1.svg";
    prefsManager.setCharPref("intl.charset.fallback.override","Shift_JIS");
} else {
/* can't use clearUserPref() on the default branch */
    prefs = prefsManager.getBranch("intl.charset.fallback.");
/* set button icon to the letter 'a'. Originally I had a base64 encoded PNG here. */
    document.querySelector('toolbarbutton#custombuttons-button1.toolbarbutton-1.chromeclass-toolbar-additional').image="file:///path/to/icon/a-en1.svg";
/* reset the 'intl.charset.fallback.override' entry to it's default (blank) */
    prefs.clearUserPref("override");
}

请注意,我为seamonkey执行了此操作,因此查询选择器可能不同。这里的一切都绝对适用于firefox。插件适用于seamonkey,firefox和thunderbird。