如何修复“电子Webview中的输入元素无法正常工作”

时间:2019-10-31 06:01:50

标签: javascript html node.js webview electron

我正在使用“ electron”为我的网站创建一个WebView App,并且我希望在其中具有选项卡式窗口,我选择了“ electron-navigation”,它工作正常,但是在WebView中,我网站的输入元素没有作用除“选择”元素外,其他元素都可以工作,但是当我“模糊” WebView时,其中一些元素便开始工作,即,我专注于其他应用程序或桌面,然后重新聚焦,它开始起作用,但是textarea却无法工作……请帮助我

我尝试在代码内寻找解决方案,但找不到任何想法,我整夜都在Google搜索,但没有运气

这是Index.html

<div id="nav-body-tabs"></div>

<div id="nav-body-ctrls"></div>

<div id="nav-body-view-wrapper">
  <div id="nav-body-views"></div>
</div>

这是index.js

     const path = require('path')
        const url = require('url')
        const { ipcRenderer } = require('electron')

        document.getElementById('nav-body-views').style.position = 'absolute'
        document.getElementById('nav-body-views').style.width = '100%'
        document.getElementById('nav-body-views').style.height = '100%'

        const navDefaultURL = url.format({
          pathname: 'vclass.us/user/login',
          protocol: 'https',
          slashes: true
        })
        const enav = new (require('electron-navigation'))({
          newTabParams: [navDefaultURL]
        })
        enav.newTab(navDefaultURL, {
          id: "test",
          title: 'vClass',
          icon: 'default',
          close: true,
          readonlyUrl: true,
          contextMenu: true
        })
        enav.openDevTools("test")
        });

这是electronic.js

    const { app, BrowserWindow } = require('electron');
    const url = require('url');
    const path = require('path');

    let win;

function createWindow() {
  win = new BrowserWindow({
    title: 'vClass',
    width: 960,
    height: 540,
    webPreferences: { nodeIntegration: true, webviewTag: true },
    show: false,
    center: true,
    minWidth: 640,
    minHeight: 360,
    titleBarStyle: 'hidden',
    icon: path.join(__dirname, 'assets/icons/png/64x64.png')
  });

  win.setMenuBarVisibility(false)

  win.once('ready-to-show', () => {
    win.show()
  })
  win.on('closed', () => {
    win = null
  })
  win.loadURL(`file://${__dirname}../../assets/index.html`)
}

app.on('ready', createWindow);


app.on('activate', () => {
  if (win === null) {
    createWindow()
  }
})


let link;

app.on('open-url', function (event, data) {
  event.preventDefault();
  link = data;
});

app.setAsDefaultProtocolClient('vClass');

module.exports.getLink = () => link;

`

我希望输入结果应该像在浏览器上一样可点击

注意:当我直接从电子中加载URL时,一切正常,但在Webview中不起作用

0 个答案:

没有答案