Closed riceshowerX closed 6 days ago
PJAX 选择器优化:
.right-sidebar
在不同页面中可能存在或不存在,导致 PJAX 切换页面时出现 "Pjax switch fail" 错误。.right-sidebar
从 PJAX 的 selectors
数组中移除。new Pjax({
// ... 其他配置
selectors: ["pjax", "script[data-pjax]", "title", ".main"] // 移除 .right-sidebar
});
.right-sidebar
且结构一致,或使用更精确的选择器。内容和页脚加载:
<main>
标签中添加 <?php $this->content(); ?>
,并在 <body>
的末尾添加 <?php $this->need('footer.php'); ?>
。代码:
<main class="main">
<?php $this->content(); ?> </main>
<?php $this->need('footer.php'); ?>
$this->content();
用于显示文章或页面的主要内容,$this->need('footer.php');
用于引入页脚文件。JavaScript 函数的定义:
updateIcon
和 initializeCommentsOwO
函数原本在 IIFE 中定义,导致 PJAX 回调函数无法访问。代码:
// 全局函数 updateIcon
function updateIcon(theme) { /* ... */ }
// 全局函数 initializeCommentsOwO
function initializeCommentsOwO() { /* ... */ }
updateIcon
函数中的 null 检查:
theme-icon
元素不存在,访问其属性会导致错误。if (iconElement)
条件语句。function updateIcon(theme) {
const iconElement = document.getElementById('theme-icon');
if (iconElement) { // 只有当 iconElement 存在时才执行
// ...
}
}
theme-icon
元素不存在时出现错误。OwO 初始化:
DOMContentLoaded
和 pjax:success
事件中都调用 initializeCommentsOwO
函数。代码:
document.addEventListener('DOMContentLoaded', () => {
// ...
initializeCommentsOwO(); // 初始加载时初始化
});
document.addEventListener("pjax:success", () => {
// ...
initializeCommentsOwO(); // PJAX 更新后初始化
});
问题描述:
在加载页面时,遇到了多个错误和警告。以下是详细的错误信息:
资源加载错误:
JavaScript 错误 - 无法读取 null 的属性:
.html
文件中,特别是在style
相关的代码行。JavaScript 错误 - 未定义的函数
runShortcodes
:WebSocket 连接失败:
混合内容警告:
重现步骤:
期望的行为:
style
属性能正确访问。