Запустите кошмарный js-скрипт внутри электронного приложения

Итак, у меня есть этот кошмарный код, который я хотел бы выполнить (откройте новое окно и запустите скрипт), когда вы нажимаете кнопку внутри электронного приложения. Однако я искал в интернете, и у меня ничего не получалось:/ (У меня есть Mac)

var Nightmare = require('nightmare');
var nightmare = Nightmare({
  electronPath: require('${__dirname}/node_modules/electron'),
  show: true
});

nightmare
  .goto('http://yahoo.com')
  .type('form[action*="/search"] [name=p]', 'github nightmare')
  .click('form[action*="/search"] [type=submit]')
  .wait('#main')
  .evaluate(function () {
    return document.querySelector('#main .searchCenterMiddle li a').href
  })
  .end()
  .then(function (result) {
    document.getElementById("results").innerHTML = result;
  })
  .catch(function (error) {
    console.error('Search failed:', error);
  });

const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow
let mainWindow;

function createWindow() {
    mainWindow = new BrowserWindow({
        title: "Dummy",
        fullscreenable: false,
        resizable: false,
        alwaysOnTop: false,
        width: 420,
        height: 250,
        'web-preferences': {
            'web-security': false
        }
    })
    mainWindow.loadURL(`file://${__dirname}/index.html`)
    mainWindow.on('closed', function() {
        mainWindow = null
    })
}

app.on('ready', createWindow)
app.on('window-all-closed', function() {
    if (process.platform !== 'darwin') {
        app.quit()
    }
})
app.on('activate', function() {
    if (mainWindow === null) {
        createWindow()
    }
})

Спасибо Бертрам

1 ответ

Решение

Я не вижу ничего, что могло бы запустить код, который вы хотите запустить.

Если бы ты дал мне это сделать, я бы сделал две вещи:

  • оберните кошмарный код в функцию, чтобы вы могли

    требуют ("./mynighmare.js") sleepPoorly. ()

  • в вашем index.html добавьте кнопку, которая вызывает вышеуказанную строку, чтобы фактически запустить ваш код.

... тогда я бы сделал целую кучу тестов, потому что мой первый проект не будет работать правильно:)

Другие вопросы по тегам