1

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

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

示例 #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' ) );

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

4

2 回答 2

1

参考Firefox 文件的User.js文档。它没有任何地方声称该文件采用 javascript 或任何其他(图灵完备)编程语言。

该文件只接受注释或user_pref()行。

因此,不允许使用条件语句。

但是,由于您正在修改示例中的样式,因此您可以使用用户样式 CSS 和/或Stylish 附加组件(推荐)完成相同的操作。在那里,您可以使用一些基于域和/或 URL 的逻辑。

对于其他非风格偏好的逻辑,您也许可以编写一个扩展来做您想做的事情。

于 2017-08-31T19:59:25.103 回答
-1

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

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

于 2017-08-30T20:49:52.473 回答