美文网首页
Electron 实现右键审查元素功能

Electron 实现右键审查元素功能

作者: coder老袁 | 来源:发表于2019-10-28 11:46 被阅读0次

    不多逼逼,直接上效果!


    准备工作:
    一个能运行的 Electron 项目,我的版本是 7.0.0

    实现方法1

    webContents > inspectElement( x , y )
    在官方文档里找了很久!皇天不负有心人!

    可是人家写着,进程:主进程。先按照这个思路写一下。
    主进程:main.js

    const { ipcMain } = require('electron');
    
    //监听从渲染进程过来的命令
    ipcMain.on('inspectElement', (e, x,y) => {
        //存在x,y都是0的情况,自行处理x,y;
        if (x && y) {
            e.sender.webContents.inspectElement(x, y);
            //等价
            //e.sender.inspectElement(x, y);
        }
    });
    

    渲染进程:index.html

    <script>
        const { remote, ipcRenderer } = require('electron')
        const { Menu, MenuItem } = remote
        const menu = new Menu()
    
        let __mX, __mY; //记录鼠标右键位置
    
        menu.append(new MenuItem({ role: 'reload' }));
        menu.append(new MenuItem({ type: 'separator' }));
        menu.append(new MenuItem({
            label: '审查元素',
            click() {
                //向主进程发送要打开审查的命令
                ipcRenderer.send('inspectElement', __mX, __mY);
            }
        }))
    
        window.addEventListener('contextmenu', (e) => {
            //记录鼠标右键位置
            __mX = e.pageX;
            __mY = e.pageY;
    
            e.preventDefault()
            menu.popup({ window: remote.getCurrentWindow() })
        }, false)
    </script>
    

    实现方法2

    直接在渲染线程 index.html

    <script>
      const { remote } = require('electron')
      const { Menu, MenuItem } = remote
      const menu = new Menu()
    
      //记录鼠标位置
      let __mX,__mY;
    
      //准备菜单
      menu.append(new MenuItem({role:'reload'}));      //重载
      menu.append(new MenuItem({type:'separator'}));   //分割线
      menu.append(new MenuItem({                       //审查元素
        label: '审查元素', 
        click() { 
          let win = remote.getCurrentWindow();
          
          //win.openDevTools(); 可有可无
          //inspectElement 会判断是否打开了开发者工具,并自动打开
          //在页面的位置(x,y)开始检查元素。
          win.inspectElement(__mX,__mY); 
    
          //等价
          //win.webContents.inspectElement(__mX,__mY); 
        }
      }))
    
      window.addEventListener('contextmenu', (e) => {
        //记录鼠标右键位置
        __mX = e.pageX;
        __mY = e.pageY;
        //以下代码来自官网
        e.preventDefault()
        menu.popup({ window: remote.getCurrentWindow() })
      }, false)
    </script>
    

    相关文章

      网友评论

          本文标题:Electron 实现右键审查元素功能

          本文链接:https://www.haomeiwen.com/subject/uwivvctx.html