vue3实现markdown工具栏的点击事件监听

这里以监听全屏事件为例

监听 Vditor 编辑器的全屏事件

要监听 Vditor 编辑器的全屏事件,你可以使用 Vditor 提供的 API 和事件系统。以下是几种实现方法:

方法一:使用 Vditor 的 after 钩子函数

javascript 复制代码
const vditor = new Vditor('editor', {
  after() {
    // 监听全屏事件
    vditor.vditor.toolbar.elements.fullscreen.addEventListener('click', () => {
      console.log('全屏状态变化');
      if (vditor.vditor.element.classList.contains('vditor--fullscreen')) {
        console.log('进入全屏模式');
      } else {
        console.log('退出全屏模式');
      }
    });
  }
});

方法二:使用 MutationObserver 监听类变化

javascript 复制代码
const vditor = new Vditor('editor', {
  after() {
    const observer = new MutationObserver((mutations) => {
      mutations.forEach((mutation) => {
        if (mutation.attributeName === 'class') {
          const isFullscreen = vditor.vditor.element.classList.contains('vditor--fullscreen');
          console.log(isFullscreen ? '进入全屏' : '退出全屏');
        }
      });
    });
    
    observer.observe(vditor.vditor.element, {
      attributes: true,
      attributeFilter: ['class']
    });
  }
});

方法三:自定义工具栏按钮事件

javascript 复制代码
const vditor = new Vditor('editor', {
  toolbar: [
    {
      name: 'fullscreen',
      tip: '全屏',
      click() {
        vditor.toggleFullscreen();
        console.log('全屏状态:', vditor.vditor.element.classList.contains('vditor--fullscreen'));
      }
    }
  ]
});

注意事项

  1. 确保在 after 回调函数中绑定事件,因为此时 DOM 元素已经初始化完成

  2. Vditor 的全屏状态是通过添加/移除 vditor--fullscreen 类来实现的

  3. 不同版本的 Vditor API 可能略有不同,请根据你使用的版本调整代码

相关推荐
2501_915373881 小时前
Electron 从零开始:构建你的第一个桌面应用
前端·javascript·electron
贩卖黄昏的熊2 小时前
JavaScript 笔记 --- part8 --- JS进阶 (part3)
前端·javascript·笔记
CodeCipher2 小时前
Java后端程序员学习前端之CSS
前端·css·学习
Enti7c3 小时前
JavaScript 实现输入框的撤销功能
开发语言·javascript·ecmascript
武昌库里写JAVA3 小时前
Java 设计模式
java·vue.js·spring boot·课程设计·宠物管理
每次的天空4 小时前
Android学习总结之GetX库篇(场景运用)
android·javascript·学习
卡戎-caryon4 小时前
【项目实践】boost 搜索引擎
linux·前端·网络·搜索引擎·boost·jieba·cpp-http
别催小唐敲代码5 小时前
解决跨域的4种方法
java·服务器·前端·json
溪饱鱼5 小时前
Nuxt3还能用吗?
前端·个人开发·seo
丨丨三戒丶6 小时前
layui轮播图根据设备宽度图片等比例,高度自适应
前端·javascript·layui