Vifly 的博客是一个JavaScript代码片段,它使用了localStorage来存储和切换网站的颜色主题。当用户访问网站时,这段代码会检查用户的浏览器是否支持dark模式(通过window.matchMedia("(prefers-color-scheme: dark)").matches === !0
),并根据当前的主题是dark还是light来设置document.documentElement.dataset.scheme
的值。
这段代码的主要功能是:
- 使用
localStorage.getItem()
或localStorage.setItem()
来获取或设置StackColorScheme
的值。
- 使用
localStorage.getItem()
来获取当前的StackColorScheme
值,如果不存在则设置为auto
。
- 使用
window.matchMedia()
来检测用户的浏览器是否支持dark模式。
- 根据
StackColorScheme
的值和dark模式的状态,设置document.documentElement.dataset.scheme
为dark
或light
。
- 使用
fetch()
函数从GitHub API获取一个名为”7a04e2188185ddb19cbd19d8217b9400”的Gist。
- 如果请求成功,返回JSON数据;否则抛出错误。
这段代码可能包含一些不安全的操作,例如直接在URL中嵌入脚本,这可能会导致跨站脚本攻击(XSS)。此外,由于这段代码使用了异步操作(如fetch()
),因此无法保证在所有浏览器和环境中都能正常工作。