70 lines
2.6 KiB
JavaScript
Executable File
70 lines
2.6 KiB
JavaScript
Executable File
<script data-no-optimize="1">
|
|
/**
|
|
* [补丁 1] 环境校验
|
|
* 处理 Cookie 逻辑,确保主题 JS 不会因为找不到 Vary 而报错
|
|
*/
|
|
var litespeed_vary = document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"");
|
|
if(!litespeed_vary) {
|
|
fetch("/wp-content/plugins/litespeed-cache/guest.vary.php",{method:"POST",cache:"no-cache",redirect:"follow"})
|
|
.then(e=>e.json()).then(e=>{
|
|
if(e.hasOwnProperty("reload") && "yes"==e.reload) window.location.reload(!0);
|
|
});
|
|
}
|
|
</script>
|
|
|
|
<script data-optimized="1" type="litespeed/javascript" data-src="/wp-content/litespeed/js/a7edd6b036ef4b8e7cd93f435386d4da.js"></script>
|
|
|
|
<script>
|
|
/**
|
|
* [补丁 2] 侧边栏/动画激活引擎
|
|
*/
|
|
const litespeed_ui_events = ["mouseover","click","keydown","wheel","touchmove","touchstart"];
|
|
var urlCreator = window.URL || window.webkitURL;
|
|
|
|
// 交互强制加载
|
|
function litespeed_load_delayed_js_force() {
|
|
litespeed_ui_events.forEach(e => {
|
|
window.removeEventListener(e, litespeed_load_delayed_js_force, {passive:!0});
|
|
});
|
|
litespeed_load_delayed_js();
|
|
}
|
|
litespeed_ui_events.forEach(e => {
|
|
window.addEventListener(e, litespeed_load_delayed_js_force, {passive:!0});
|
|
});
|
|
|
|
async function litespeed_load_delayed_js() {
|
|
let scripts = [];
|
|
document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e => { scripts.push(e); });
|
|
for (var i in scripts) {
|
|
await new Promise(res => litespeed_load_one(scripts[i], res));
|
|
}
|
|
// [核心漏点] 必须手动触发这个事件,侧边栏才会初始化
|
|
document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"));
|
|
window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"));
|
|
}
|
|
|
|
function litespeed_load_one(t, e) {
|
|
var d = document.createElement("script");
|
|
d.addEventListener("load", e);
|
|
d.addEventListener("error", e);
|
|
t.getAttributeNames().forEach(name => {
|
|
if (name != "type") d.setAttribute(name == "data-src" ? "src" : name, t.getAttribute(name));
|
|
});
|
|
d.type = "text/javascript";
|
|
if (!d.src && t.textContent) {
|
|
d.src = litespeed_inline2src(t.textContent);
|
|
}
|
|
t.after(d);
|
|
t.remove();
|
|
}
|
|
|
|
function litespeed_inline2src(t) {
|
|
try {
|
|
var d = urlCreator.createObjectURL(new Blob([t.replace(/^(?:)?$/gm, "$1")], {type: "text/javascript"}));
|
|
} catch (e) {
|
|
d = "data:text/javascript;base64," + btoa(t.replace(/^(?:)?$/gm, "$1"));
|
|
}
|
|
return d;
|
|
}
|
|
</script>
|