Deprecated: mb_substr(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/kxs-php/controllers/NovelController.php on line 303
第九百五十章 一波三折 - 叶不凡唐若雪 跳转到主要内容

第九百五十章 一波三折

作者:叶不凡
(�/�d UyZ��*=@)� ���{��g��M9rl��E�B��E���M���͊������R�ڹ�r� ڌ���M륗7#�sɛ��n0�!��z3{&�mFr�}�)[�M՛0�����y1���K*�*���� �cL,!o�ކx;��g�D����״ޑ��ܨ��Gs.9c�ҩK���Y���6�WB��x�O0�.)L ��Б�{y>��q�� ۀ��k���M��i���xHag�{ڰ �U�����t�g���L؂u����GF ��E� �S���)N ��~��=# ^qc���Z%{�Μ0$t�5�WL��|����x%�u�ڬ�a9Hq�^�kMy3�Ԕ�B���U�e�-�VL�Q 2{^��=��������ͪ�.�'Yߠ��3�\��Sq �E���� �)&��s�h�E�\~�� �5���� QxZ�:�U��In�W��$������B�cԦ����[11��G-��yy��U��Ɨ(��˜�Kțٳ��C�'M��µ�U���M\/�[!r��u���"l y������5�儘b�Z���#0�����S(B��<t��K W݋]�`z��^��3{:P2�8������/�����)�r@dC&GNn�rmR4ƒA�3{V�5-t�ę=MV7����@�5���yIe���O:�y�f�,��sq�䵓%�`��ψ�jLk�m��/��0v�f����,�go��$yC�'\o\���̞ �A�M�\����9��R�����bJ��~�&��0ȇ&��a���� �4� ��p�d�i�K_�^pp��g�ddN0/i�sq���� 䇣��=_N��Z�yfO �z�oj^���r��z��ތ�U��`7�����\\D9����9�-�M��ٓ�����x7�+=����{ y�w4��G-��Px��'�H0p�Z�?a�̞ ���]��ab� [�?�g��|mF���EGCB)^�:T/B"g7p�p�O�`@�^��!�-��=A�7����,2)�/t_u�oI� �-�,���щ�v�Z4�{ �; ��yfk����2�p����q���9��ru4���ĻQ���h� ���o�"bS�j��8މ�\]u����놧��̞X��˫���x]2a��ř=IF��������U��� �����o��t��` �k�����1^�⠈�K*�V7����G�ֈvս�c�W����B6;�rj��W�o.NGI<�u��+�6#Y��$Rc:/B��9�̞��3�T�h|������Y�m�x�}�� ����|=���^~P6)초�����K*g�;�WB^�����̠ �|}r��s�����m{���rfO��E�6��:c�Rt�izy�[�C_g��0<��`tf��^�א�)E�#��b�n�+���*�*L�qpfO��xC���9���1�\3��F���o�v� y�������F\3��Z��^�+���h8���%�7��*\>�����yK&�7S������t�e����2�\lݹxd���q�d�Kb��Y݀�o䉄�ؓZ]1��k�%�1�&l+LX�B���C3PrfOR� I� ~`��{��=_fO�Z V\Ayս��7 �-aϒ� �Z� �Z��z�����`ҡHg�,$qg ���̞ �&y��Z� �Z� ��9 B�X�>4"A�9�Wa~���3�o����&��F��S�Z3q���C9yz�f��v)�Z]u�Zd�+�$3;���u���C��?X�z̦������-��1q����?c� �5Q2�k����F�:��ˋ�E�m��Έׂ5f�O����p}ynq-2�z�Ey3 D0@ D�@A�^��� PA 0D@t����X�4_[�M��)aH�� ���x)�k���I�ɑgNx����8�y�ޒ�Jܡnb�);�g�h�ޏ���%�͜�����S�-�=n�'�SLl�6YoՖ�Ko�[u�QXaR,��b��vJ8�'���1��%��z?򂾮H��z�� �&�� E����E#f�8��!�I�����Wè��9tЛ������8����8�tr��K*���5�,O�b�ޗT�<[h�+���5H�� ��v5璫�C�% �8��T�l��hS�vs����1�4��p��o�b�̞��{�M���T�4�֋1�ɶl����9V�hĤ�3�'@@i:�g����5�#�V�4�=��q�%�-�̞��'$=�䯓��8�ȫ�O�ᎠǴ�x-��ȡ�ט����\�SL\uOn}�x����k�����VS�K_74\c�vЧI��7�|�yQ���ל�3{vn��!�?^W�74����T2���01��6��M0w���Z���}�i�@^�WB^�)LZaRR8�uI�̞�x)"7P.���np��8�^>�9�h�ZP1�K�U�&�#YW��Ԗ��H��\B�M�#�A���E��hy���Q��{z�D�\�p��۹8G>éK�?"�Ĩ!�q�00�� �!(���;,PI� �@AzȨ��;/O �;%n���w�������k��0ژ�0q�ߓ�pF�ʴ �A ����[mM� ��(�x5O�U�$[j2�������� oU�����991i�a� 5��N�ӣ����9�� �P^��þ�߹�q�J[���_�,�d�ɱ�sڎ�_g�����p��piU�US&@ wP$1�P>��g U���� 6=�-;�Xժ-Gb��ʼĉ&�ֿ����[WBL����R����#`x��?NH�D����/���j膒�?�;3�c���Z0��٣K6�퐖VfA�����(_���gҝ����Izܱv��lqQAO�Q�b##�'QYq�'a.6n�C�9|�Ű4�}J޸�Lw�MTZ5�������8'w&J��Y���ދAe0��?��k�N���I�h� ^��S�!;�t���ܹ�1�� ����̺� ���}����5@�QI�X^C9��4���Ň�����s[�U�yp; J�O ����7�:>t��QVG�r� e ��.~frw]�ݍ���x�it� D u/�ٞ�V[.��)�_�3��v�1;2��"BV:M�sf08���9�n��u|�vS[�8���9r� �9��\p :U?�%A���� ȏ��p�A�C�%H���^k dN$*� �~LJ��^:�W2��� �;xX�Ė��h�jiP T:�V���ܔ�%� ��дRl.���O�`D�>"B(7�!>W^)�J-,�q���-�q[3�u<����;�y��cYu��6�]��u`E�T���}�ڱ����@�j�DU�(7" O�ڭ9[���7ՔF1 �; �,R5�2�v8��>:�z�c��@�v+`��̄���qʢ��Y����a�@�HKe��3[;wu�ђ)-�ku@���P0��B��f�؉Yum�����b=:4�T:%�B�~x3��{�Ϸ�ĸ6\� ���F_� { // 初始化认证状态 initAuthState(); // 注意:阅读历史已由reading_history.js自动处理,无需手动调用 const themeToggle = document.getElementById('theme-toggle'); const themeToggleIcon = document.getElementById('theme-toggle-icon'); const html = document.documentElement; // 检查本地存储中的主题偏好 const currentTheme = localStorage.getItem('theme') || 'light'; html.classList.add(currentTheme); // 更新图标 if (themeToggleIcon) { themeToggleIcon.className = currentTheme === 'dark' ? 'ri-moon-line text-xl' : 'ri-sun-line text-xl'; } // 切换主题 if (themeToggle) { themeToggle.addEventListener('click', () => { const isDark = html.classList.contains('dark'); if (isDark) { html.classList.remove('dark'); html.classList.add('light'); localStorage.setItem('theme', 'light'); if (themeToggleIcon) { themeToggleIcon.className = 'ri-sun-line text-xl'; } } else { html.classList.remove('light'); html.classList.add('dark'); localStorage.setItem('theme', 'dark'); if (themeToggleIcon) { themeToggleIcon.className = 'ri-moon-line text-xl'; } } }); } // 字体大小调整 const content = document.querySelector('.reading-container'); const fontDecreaseBtn = document.getElementById('font-decrease'); const fontIncreaseBtn = document.getElementById('font-increase'); const readingModeBtn = document.getElementById('reading-mode'); const addBookmarkBtn = document.getElementById('add-bookmark'); // 从本地存储获取字体大小设置 let fontSize = parseInt(localStorage.getItem('fontSize')) || 18; content.style.fontSize = `${fontSize}px`; // 减小字体 fontDecreaseBtn.addEventListener('click', () => { if (fontSize > 14) { fontSize -= 1; content.style.fontSize = `${fontSize}px`; localStorage.setItem('fontSize', fontSize); } }); // 增大字体 fontIncreaseBtn.addEventListener('click', () => { if (fontSize < 26) { fontSize += 1; content.style.fontSize = `${fontSize}px`; localStorage.setItem('fontSize', fontSize); } }); // 阅读模式切换 readingModeBtn.addEventListener('click', () => { document.body.classList.toggle('reading-mode'); if (document.body.classList.contains('reading-mode')) { // 隐藏导航和其他元素,只显示内容区 document.querySelector('header').style.display = 'none'; document.querySelectorAll('.section-container > *:not(main)').forEach(el => { el.style.display = 'none'; }); document.querySelector('main').classList.add('reading-mode-active'); document.querySelector('.fixed.bottom-0').style.display = 'none'; // 隐藏移动端底部导航 } else { // 恢复正常显示 document.querySelector('header').style.display = ''; document.querySelectorAll('.section-container > *:not(main)').forEach(el => { el.style.display = ''; }); document.querySelector('main').classList.remove('reading-mode-active'); document.querySelector('.fixed.bottom-0').style.display = ''; // 显示移动端底部导航 } }); // 书签功能 addBookmarkBtn.addEventListener('click', () => { const bookmarks = JSON.parse(localStorage.getItem('bookmarks') || '[]'); const currentBookmark = { novelId: 'ybftrx', chapterId: '64123842', novelTitle: '叶不凡唐若雪', chapterTitle: '第九百五十章 一波三折', timestamp: new Date().toISOString() }; // 检查是否已存在相同的书签 const exists = bookmarks.some(bookmark => bookmark.novelId === currentBookmark.novelId && bookmark.chapterId === currentBookmark.chapterId ); if (!exists) { // 限制书签数量为10个 if (bookmarks.length >= 10) { bookmarks.pop(); // 移除最旧的书签 } bookmarks.unshift(currentBookmark); // 添加到最前面 localStorage.setItem('bookmarks', JSON.stringify(bookmarks)); // 显示成功提示 alert('书签添加成功'); } else { alert('书签已存在'); } }); });