vue 右键菜单的实现

最近一个项目,选中某些文本,然后右键进行一些操作,使用了vue-contextmenujs插件

  1. 安装vue-contextmenujs

    npm install vue-contextmenujs

  2. mian.js中引用该组件

    import Contextmenu from 'vue-contextmenujs';
    Vue.use(Contextmenu);

  3. 页面中使用

4.判断是否在该文本区域内

复制代码
 rightClick(event) {
      console.log("点击了右键", event);
      this.chapterText = ""; // 先清空,chapterText 保存选中文本
      let sel = window.getSelection
        ? window.getSelection()
        : document.selection.createRange();
      let text = sel.toString();
      if (!text) {
        return false;
      }

      let divId = "bodyContainer";
      if (sel.getRangeAt) {

        var range = sel.getRangeAt(0);
        var ancestor = range.commonAncestorContainer;
        while (
          ancestor.id != divId && // Check id, class or otherwise
          ancestor.parentElement != null
        ) {
          ancestor = ancestor.parentElement;
        }

        if (ancestor.id == divId) {
          // Selection is within the editor.
          console.log("在div内");
          this.chapterText = window.getSelection().toString();
          this.$contextmenu({
            items: this.rightMenuData,
            event, // 鼠标事件信息
            customClass: "custom-class", // 自定义菜单 class
            zIndex: 3, // 菜单样式 z-index
            minWidth: 150, // 主菜单最小宽度
          });
        } else {
          console.log("不在div内");
          return false;
        }
      } else {
        //
        return false;
      }

      return false;
    },

5.菜单

复制代码
 rightMenuData: [
        {
          label: "翻译",
          onClick: () => {
            this.handleTranslate();
          },
        },
           ....
        },
      ],
相关推荐
0思必得02 分钟前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
东东51629 分钟前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino32 分钟前
图片、文件的预览
前端·javascript
2501_920931702 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
layman05283 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔3 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李3 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN3 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒3 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库3 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css