<script src="https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@v2.1.0/dist/simpleMemory.js" defer></script>
中双引号的部分,并换成你云资源服务器或CDN加速节点的链接。把主题资源文件夹里有关dayNightSwitch的js和main.js文件都查阅了几遍
发现有这样一条代码在dayNight.js里面(../src/components/dayNight/dayNight.js)
$('head').append('<link type="text/css" id="baseDarkCss" rel="stylesheet" href="'+_.__status.dayNightCssHref+'">');
查阅了一些文章,发现这是一个通过JavaScript来插入html元素的语句
再翻翻main.js (.../src/main.js),发现_.__status.dayNightCssHref
中的_.__status
是用来查阅页面状态信息的,而_.__status.dayNightCssHref
便是用来记录夜间css样式文件路径
于是就有了另一种"可能的"方法:
也搞一个类似的小东西来记录想要的代码高亮主题路径,并且将其插入到html中,覆盖原来的样式
(但是,我不会:D)
如果让正在看这篇文章的你高血压了,对不起!!!!!!!!!!
F12打开元素,狂摁dayNightSwitch,发现在Darkmode下head里面新增了一个link元素,
<link rel="stylesheet" type="text/css" href="https://cdn.cnblogs.com/jsDelivr/gh/BNDong/Cnblogs-Theme-SimpleMemory@v2.1.0/dist/style/dayNight.b054622b.css" id="baseDarkCss">
关闭Darkmode的时候,这个元素就消失了,而页面也变成了Lightmode
在把主题源文件翻来覆去后,觉得这是夜间模式的样式文件,并且覆盖了原来页面的样式
......
在一番折腾后又发现,head里面还有个link元素
<link id="highlighter-theme-docco" type="text/css" rel="stylesheet" href="/css/hljs/docco.css?v=96AvS5-MYBJiKvD1E0JKQz8x73b_-MURZdItl-c5YcI">
原来是在后台设置的代码高亮样式
那咱就寻思寻思——要是把另一个代码高亮样式复制到dayNight.b054622b.css里面,是不是就也能覆盖掉原来的样式呢? 所以就把已经修改好的dayNight.b054622b.css传到了博客园自带的空间里
——然后成功了!
但是要怎么和dayNightSwitch绑到一起?
(我也不知道我当时在想什么乱七八糟的,沉思了好多好多好多时间)
翻来覆去,看到官方文件可以自己托管主题资源,于是我开始找一个云端服务器
阿里云、华为云、腾讯云...好贵!
突然看到前几年沸沸扬扬的阿贝云,想起来当时自己也搞过这玩意(但是真的lap sap)
于是上传,修改,保存,什么什么的...
居然白屏了??!!!!!
于是查来查去,原来是因为有着https协议的博客园要是加载了破烂http协议的阿贝云服务器文件,就不安全,不安全浏览器就要保护小冰...
然并卵,允许查看不安全的内容后,居然不会改变..
又翻来覆去查了好久好久,直到我发现...
把dayNight.b054622b.css从云服务器里删了,the goddamned Darkmode还会加载!??
于是又爬着这条藤子慢慢摸索,发现浏览器会有一个功能叫做"从磁盘缓存"...
换了崭新的Chrome之后,重新上传了修改后的dayNight.b054622b.css的文件就可以用了。
如果让正在看这篇文章的你高血压了,对不起!!!!!!!!!!
当然整个探索的过程不止这么简单...只不过写的是一种已经实践出来的方法的探索过程而已.
其他觉得可行的方法已经写在上面了w,爱看不看!小冰才不管你呢
自己骗自己,只能拿来调试而已:3 因为大多数人都不开,进来看都是白屏。所以还是要换https协议的资源服务器
Chrome在https网站中打开http图片,打不开的解决方案 —— atzqtzq的博客
javascript动态插入html元素 —— longshengguoji的博客
博客园SimpleMemory添加Live 2D不生效解决方法 —— 小能日记 来自我的强者朋友
呜呜呜我是大憨憨