1

我有一个浏览器窗口对象,用于'NodeIntegration=true'使用 ipcRendere 在渲染器和主程序之间进行交互,它适用于 github.com 等页面。不幸的是,对于 StackOverflow,它不会加载外部 javascript 文件。当我关闭 NodeIntegration 时,它工作正常。

下面是我的代码

使用上下文菜单右键单击所选对象 o 识别类并作为同步消息传递

click: () => {

  let codex = `
  var ipc = require('electron').ipcRenderer;
  var identified = document.elementFromPoint(${params.x}, ${params.y});
  console.log(ipc.sendSync('synchronous-message', identified.className.toString()));
  
      
  `;
  mainWindow.webContents.executeJavaScript(codex);
  //mainWindow.webContents.inspectElement(params.x,params.y)

}

ipcMain.on('synchronous-message', (event, arg) => {
  console.log(arg) // prints class name
  event.returnValue = 'pong'
})

页面完成加载时加载Dom 检查器和 Jquery

  mainWindow.webContents.on('did-finish-load', ()=>{
    let code = `
    let $ = require('jquery')
    const DomInspector = require('dom-inspector');
    const inspector = new DomInspector({
  });
  inspector.enable()
        
    `;
    mainWindow.webContents.executeJavaScript(code);
});

输出

在此处输入图像描述

当我关闭节点集成时,它可以工作,但我不确定如何注入 dom-inspector js。我应该尝试使用<webview>并预加载脚本,有什么想法吗?

4

0 回答 0