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
20.黑魔法防御术课 - HP魁地奇式爱情 跳转到主要内容

20.黑魔法防御术课

作者:熊木笑里
(�/�d�5���t-E> @pη�o���d"��w�A�u�4M������J'�F&i-F$& U�3G(�0*E>BX�~���{n��%PPr�LI�y,�K� nn!e����,��ӆ��R�L�X�V4(I,�=;D�k (V��iÐ�ON�80���^N` J�J�Z�\�����^WCȫ�8��s ��q�;���j���}�6�y`�vU��yLܼ��d��+f��I3�fּ��o����(�E� ��x�0 rO����ExC��Ks�w��ф��n� �>M2N93���\���+��?��`6�r��6�b���� �n�-���)V��z�֪��6tnk�g�g�£ # ~ph�Ace���N��ּQ��!�UX����8Ŷ�#�<����P�6"���C)?��$�'Z��?�I&���Ex�2-7��1�Z�5�� ���=j���<�)(�4ܳyCt�mM�p����� M��X�nSƲO6��W�4�۔+� (-�B^psB]��zi{f��7�l��C�Kv�W�`y��NH�ɮU�8�"��&�^��G������R~B���=Hw,(W ez8?*��y�L�CۚP(ӌ� �X}�>��@k�<頚���Qce* �X�C�V��� n^��n�݆� {�[� � �����Wc@ �������w��CfN����M� �1��B��IyB�I#&�+�ф &2�x�];���HGJ?�k���X�z���ę��r�f�wa�C^�L+\Z��+� t�@�%s�p��`���x�2�8^j�kٱ� ���EHc�-{r��w]@k�t�p�x��$h��0z+�b��U����R�e%���ŪΩ�J�F��x�� Tw�%�dL���be�p�A-�3��i�˞�/��˱$��# |A>m�2���[y�ժM����^�[����5!��c����b^[2�0sj?���Tau�Ѷ&X�Os�A�A������}�2 !wa�*��t��ב�%ٱ2�6�F���5�ӆ��1�{��n�LB�{���F��r��0�����^Qx�V0��)�eQ�%�-ta^��;�E/�n�k0�4$ru��G�CO�l-����9b �g[R����c�?]��t+o-OQ�P�m�ӆ)�[l[�3�QkD� ��}A��ݢ/�W�����A���>��6�U�l/����a�9��3c �z8�Um)ӂ�X����y@kE����bw��� J��$�BmkCҠ�)��� ת�\@��eL ��a� O�y�a-;����3#��W�0�gĠ����A�)�+FЏ}� O�w+�� � ���3��$ͱ�Exky�:Y]A��Rބ���)�q,P� ` ����]� .9s�5���x+�k�ƨќ`��3�.»8� �#^�&X��=��y#�[���x5SkU�Sf4^K�E���z�|���t��E�ώA^1�� `pM`qD�,,3 !G:,�`�/����O/�[E/�9\��C���›]��~0��� /���G;�tF9��1|/i-�Ġ?� �]U����Zv[�p�AE�������������ڦ�Wh��_� ���w�FՒ�����#��y�AgB R:R��"�"g�7�kU���Ў�/�%�d[i��ià��[u1o�.G:�Zrf�!�X�E�ϞS�S[�:3⭢ӆT�S�$"?�Xʠ䍪1Y+��.-�=�W�W�ÆE+ī+ ��U(ӄ�X�*����갼�����jU[�!Z� kF� ���6l��2��AK�`��ל����\9�P(2��m� �2�K�U͑x�h��-Uk!lr�i<���Q�+��L��Eh�AO���0d#ƅ��2�tx��ȡ�r�G,3ٜa�ҥ� �?��6�E�J�J��ȋ � V�%� �Z�ZS�Mhm��Np^9^9^ ��3j��ƠH�q�Rd�H�i�b)"��)��j�&��6�q �ܳ9(��"����Q����kUg�� 6臂�[cghP�ceZ9h�AG��H�r�l���J��� ��)�z|]� �G;(���{�L$u����Z�p���������lі덪���;B\�A��1h�;G��?���[93�o �h�;�����>8�y@;� ]Q��_� �����sjC�6�8����9�.,@ ��%�E�rg��Ȇz@D�EcB�����+��X���7ڙ�m[8a���� zY,e�LC$�ɗH|gt�q[ ���$���g�K�H�ס���/gUceJ�Wa%�?�"�^��@{��ӆ/浊N���W4�Y|�pU�E��M�9\z���UM���j�d/��V��,P�r�rT����:�z��KB~x�8����p��x3#��0B���c�k��s���A��%3��j[H{Ȓ����.߄�����ѣ�� J�s��2�02����2�8g`Q)��Ti����� ���4��w�">W�RM[u[�Ɛ !�ڐ�Ķc)��)e/j�b���?1���R��M���Ч�e�H�Q޼�`�E�KJvtk���%��<�&�jHL�+�o�3?p���0b=�R��c�"�9�C�аb*J(�� �ﶾj���)ݿ��S�����AS���źhD�GE��0�ʔ�*���A#�#5��w:�|%��EW�v'vMP�%��D�܍1 ����=�Z��� �/y�D�PD�ء䫮�M�3E�[��%���Na ���_ �@1 �2E P!5C";0��tc����w�B��'�Gn1e�,�ީYۖ��W�hQCT%,D?e8�Rf�?�B�ֺ�:y$b��vd\+���;��03mt�Џ%�)��,�bt$5R��U��c����H�����TF�QQ���/5S�;Xb�y$K����p�uA��adWgS`q}�VA"’����P����,N��1f���A�Qۡ�Z&���v9:�x��� ��Zwp�ҵ�*��l�qB�K<�������c΄G{* MG����~��\�K>}�&^ʱӀ3���fbN�����Ig�1�Ůk<N,yZ��:1���9U97{ �#���3�FT���t���'� � �"#*&�L�-�q{������*�%zO�2 ��NT��h�����xw�CSAe� Z �}��Tў��:~I����E{�;��g" $�c[�C�~#)~��"Kr � Nri�.�;��#XA3֓ը�G�?���|� -�KtD�^�J ��/�U��e�?|%�ڠ�6��f���wc~�������ڦC5��sWHT|O=% 4�t�^3i!���yA/v�A��|M{ ����~#�L���})��*� 7βFă�Pוc%W4��Sܫ.(.��5e��ƊUǘv���?+��ެ&/x��9��R�C�����]�C������*'}�C� &GE�f3V�q<���bצK��sJj���-���I�(3������wam�e�tZ>5W۸N� ���)�3�w����C�zP� 0�k0"�1�13��h�D2���9���q@7�����[XAb��nM�=[d�(��-:o.2o��I���)@�c��˨ ?��H�1�Q���G�� ���т<���æ��&�(‰�d�D�s-0����ɻ���[lH�L96�\f:hCh?��`��&����#�#A��˥:|w�k�W ���$��d��(�X�T�{�S����#�pr$؏p�i�Q��8� �m����t�A:c6\3�E��%bӭ,Xf.��Ri��c���(�z �}���IR��cL�l ��t��H,\p����cV=��L�`n��7�Ex �J�t}��.�7- G��Be���F�O�h�3tt<|��]9?�}�X�ON�4F�d�H���#Bj����?9+�DO�A;Q�&ֽ0Al��>yL 0j#���H_Ew�Uh�p�%�x�L��)|E�@aQkf�Ac[^*���I����f|'�h�5= #w��aG��"Y�r,�M�Ӫ�q���Ճ�cE��49�;�Kbދ�~��[X���L��R��4S,o�C�|�I�wɄ@ ���v7M��w�Qog�cD*j��� GJ���X���[/0�?��,e��a2���4+�4�%�ktS�����-��X���wJ��M���QP �Բ��[\����5Rj�2�����I#G�l�S )X��� �č�tEi���r��}+����;\n��hP+j�Pc�b���nF��7�g'����`{U��B��5K������f����1��\N`�F ��A@� ΋�� x����Г�*e�K{9a4̫b6}��o��](,�&�Z��H��q{K�^85^�E�J���k��<���UU�C��M������o���/�IA�� { // 初始化认证状态 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: 'kdqsaq', chapterId: '36458315', novelTitle: 'HP魁地奇式爱情', chapterTitle: '20.黑魔法防御术课', 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('书签已存在'); } }); });

看小说网

看小说网是您最喜欢的免费小说阅读网站。提供海量全本小说免费阅读,所有小说无广告干扰,是您值得收藏的小说网站。

© 2023 看小说网 版权所有