启用暗模式时 JS 更改浏览器选项卡图标
JS change browser tab icon when darkmode is enabled
我有这个脚本,可以正常工作:
const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
darkModeMediaQuery.addListener((e) => {
const darkModeOn = e.matches;
console.log(`Dark mode is ${darkModeOn ? ' on' : '☀️ off'}.`);
});
我(用我 none 现有的 JS 知识)正在尝试更改最后一行:
console.log(`Dark mode is ${darkModeOn ? ' on' : '☀️ off'}.`);
更改浏览器选项卡图标,而不是在 console.log
中显示它。
我的想法(我还没有实现)是:
if (dark-mode = on){
$icon = "images/icon_dark.png";
}else{
$icon = "images/icon_light.png";
}
}
然后使用<link rel="icon" href="$icon">
中的$icon
。
我知道我上面写的不是JS的工作原理,但它只是为了说明我想要的。我见过其他解决方案,但我发现这个想法最符合我的意图。
非常感谢任何帮助。
是的,这里不需要 PHP,但可以使用 JavaScript。
将 id 附加到元素
<link rel="icon" href="images/icon_light.png" id="favicon-icon">
JS
const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
darkModeMediaQuery.addListener((e) => {
const darkModeOn = e.matches;
console.log(`Dark mode is ${darkModeOn ? ' on' : '☀️ off'}.`);
document.getElementById("favicon-icon").href = darkModeOn ? 'images/icon_dark.png' : 'images/icon_light.png'
});
我有这个脚本,可以正常工作:
const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
darkModeMediaQuery.addListener((e) => {
const darkModeOn = e.matches;
console.log(`Dark mode is ${darkModeOn ? ' on' : '☀️ off'}.`);
});
我(用我 none 现有的 JS 知识)正在尝试更改最后一行:
console.log(`Dark mode is ${darkModeOn ? ' on' : '☀️ off'}.`);
更改浏览器选项卡图标,而不是在 console.log
中显示它。
我的想法(我还没有实现)是:
if (dark-mode = on){
$icon = "images/icon_dark.png";
}else{
$icon = "images/icon_light.png";
}
}
然后使用<link rel="icon" href="$icon">
中的$icon
。
我知道我上面写的不是JS的工作原理,但它只是为了说明我想要的。我见过其他解决方案,但我发现这个想法最符合我的意图。
非常感谢任何帮助。
是的,这里不需要 PHP,但可以使用 JavaScript。
将 id 附加到元素
<link rel="icon" href="images/icon_light.png" id="favicon-icon">
JS
const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
darkModeMediaQuery.addListener((e) => {
const darkModeOn = e.matches;
console.log(`Dark mode is ${darkModeOn ? ' on' : '☀️ off'}.`);
document.getElementById("favicon-icon").href = darkModeOn ? 'images/icon_dark.png' : 'images/icon_light.png'
});