Firefox 的 User.js 文件可以有条件 user_pref() 语句吗?

Can Firefox's User.js file have conditional user_pref() statements?

是否可以在 Mozilla Firefox user.js 中创建条件 user_pref()

我试过使用 if-else 语句,但是第一个 if 语句的内容被执行了,即使给定的条件是 falseelse语句的内容被忽略。

示例 #1:

if ( false )
{
    // This is executed even though the given condition is false in Mozilla Firefox user.js.
    user_pref( 'browser.display.background_color', '#000000' );
}

else
{
    // Unfortunately, this is not executed in Mozilla Firefox user.js.
    user_pref( 'browser.display.background_color', '#FFFFFF' );
}

此外,我还尝试使用 ternary 表达式来有条件地更改用户首选项,但该表达式被完全跳过。

示例 #2:

// This is not executed at all in Mozilla Firefox user.js.
user_pref( 'browser.display.background_color', ( 1 === 2 ? '#000000' : '#FFFFFF' ) );

总的来说,我试图最终找到一种方法来根据 window.location.href.

的内容有条件地更改 user_pref() 属性

首先,您确定要使用 === 而不是 == 吗?请记住 === 使用严格的转换而不仅仅是类型转换,因此在大多数情况下 == 可以正常工作。

此外,如果您要设置主题的某种背景颜色,最好直接使用该数据,而不是仅仅将其设置在首选项设置中(即将值存储在变量中,然后将其存储在 user.js偏好设置)。

参考the documentation for Firefox's User.js file。它没有声称该文件采用 javascript 或任何其他(图灵完备)编程语言。

该文件只包含注释或 user_pref() 行。

所以,条件语句是不允许的。

但是,由于您正在修改示例中的样式,您可以使用用户样式完成同样的事情CSS and/or the Stylish add-on (推荐的)。在那里你可以使用一些逻辑,基于域 and/or URL.

对于其他非样式首选项的逻辑,您可以write an extension做您想要的。