import './bootstrap'; import $ from 'jquery'; //window.$ = window.jQuery = $; import './nasa/components/filter'; import './nasa/components/tomAlert'; import './nasa/components/tomModal'; import './nasa/components/nasabook'; import './nasa/components/copy'; import './nasa/page/list'; import './nasa/page/detail'; import './nasa/page/login'; $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });// ajax携带都携带某个参数 import { Editor } from '@tiptap/core'; import StarterKit from '@tiptap/starter-kit'; import { Markdown } from '@tiptap/markdown'; import axios from 'axios'; window.oModalEditor = null; /** * 工业级初始化:确保安全挂载 * 谐音发音:因尼特 摸到 爱迪特 (Init Modal Editor) */ window.initModalEditor = function(sInitialContent = '') { const oEditorElement = document.querySelector('#div-modal-editor'); if (!oEditorElement) return; // 单例防御:如果已经初始化过了,不重复 new,直接更新内容,防止内存泄漏 if (window.oModalEditor) { window.oModalEditor.commands.setContent(sInitialContent, false); return; } // 实例化引擎 window.oModalEditor = new Editor({ element: oEditorElement, extensions: [ StarterKit, Markdown.configure({ html: false }), Highlight ], content: sInitialContent, }); // 大厂统一动作总线(Event Bus):利用 data-action 统一管理按钮事件,避免写一堆 click 监听 $(document).on('click', '.js-tiptap-btn', function(e) { e.preventDefault(); const sAction = $(this).data('action'); const oChain = window.oModalEditor.chain().focus(); switch(sAction) { case 'bold': oChain.toggleBold().run(); break; case 'italic': oChain.toggleItalic().run(); break; case 'heading': oChain.toggleHeading({ level: 1 }).run(); break; case 'highlight': oChain.toggleHighlight().run(); break; } }); }; window.$ = window.jQuery = $; // 可是这里这样写了,blade不就应该可以调吗