最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

电子子窗口不想调用自己的js脚本

IT培训 admin 6浏览 0评论

电子子窗口不想调用自己的js脚本

我不是一个javascript人,但我一直在制作一个Electron GUI,我很困惑为什么我似乎无法让一个子浏览器窗口调用自己的js。

我有一个main.js做了很多事情,设置一个托盘菜单,其中一个选项将生成一个浏览器窗口,如下所示:

  window = new BrowserWindow({
    width: 360,
    height: 320,
    backgroundColor: "#D6D8DC",
    show: false
  })

  window.setMenuBarVisibility(false);

  window.loadURL(require('url').format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true
  }))

并且该窗口加载正常,并且包含对其自己的window.js的引用,这是我在Electron示例中看到的方式:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Radiam Agent</title>
  <link rel="stylesheet" href=".3.7/css/bootstrap.min.css">
  <script src=".2.1.js"></script>
</head>

<body>
  <div id="container" class="container-fluid">

    <div class="row">
      <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 ">
        <h3>Username</h3>
        <input name="username" id="username" type="text" size="40"/>
      </div>
    </div>

    <div class="row">
      <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 ">
        <h3>Password</h3>
        <input name="password" id="password" type="password" size="40"/>
      </div>
    </div>

    <br/><br/>

    <div class="button">
      <button id="login">Get Radiam Login Token</button>
    </div>

  </div>
  <script src="window.js" charset="utf-8"></script>
</body>

</html>

window.js代码,看起来像这样(整个文件),似乎并没有激发:

const notifier = require("node-notifier");
const zerorpc = require("zerorpc");
let client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");

function login(event) {
  var username = document.getElementById("username").value;
  var password = document.getElementById("password").value;
  client.invoke("login", username, password, function(error, res, more) {
    if (res){
      notifier.notify({"title" : "Radiam", "message" : res});
    }
  });
}

document.addEventListener('DOMContentLoaded', function() {
  document.getElementById("login").addEventListener("click", login(event));
})

我错过了什么吗?同样,不是一个js人(我正在构建一个Python脚本的GUI,否则它工作得很好),但它似乎应该是显而易见的......

谢谢!

回答如下:

这很有效。我认为这是错误的听众类型,而且我不应该试图通过event

const notifier = require("node-notifier");
const zerorpc = require("zerorpc");
let client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");

function login() {
  var username = document.getElementById("username").value;
  var password = document.getElementById("password").value;
  client.invoke("login", username, password, function(error, res, more) {
    if (res){
      notifier.notify({"title" : "Radiam", "message" : res});
    }
  });
}

document.getElementById("login").addEventListener("click", login);

电子子窗口不想调用自己的js脚本

我不是一个javascript人,但我一直在制作一个Electron GUI,我很困惑为什么我似乎无法让一个子浏览器窗口调用自己的js。

我有一个main.js做了很多事情,设置一个托盘菜单,其中一个选项将生成一个浏览器窗口,如下所示:

  window = new BrowserWindow({
    width: 360,
    height: 320,
    backgroundColor: "#D6D8DC",
    show: false
  })

  window.setMenuBarVisibility(false);

  window.loadURL(require('url').format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true
  }))

并且该窗口加载正常,并且包含对其自己的window.js的引用,这是我在Electron示例中看到的方式:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Radiam Agent</title>
  <link rel="stylesheet" href=".3.7/css/bootstrap.min.css">
  <script src=".2.1.js"></script>
</head>

<body>
  <div id="container" class="container-fluid">

    <div class="row">
      <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 ">
        <h3>Username</h3>
        <input name="username" id="username" type="text" size="40"/>
      </div>
    </div>

    <div class="row">
      <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 ">
        <h3>Password</h3>
        <input name="password" id="password" type="password" size="40"/>
      </div>
    </div>

    <br/><br/>

    <div class="button">
      <button id="login">Get Radiam Login Token</button>
    </div>

  </div>
  <script src="window.js" charset="utf-8"></script>
</body>

</html>

window.js代码,看起来像这样(整个文件),似乎并没有激发:

const notifier = require("node-notifier");
const zerorpc = require("zerorpc");
let client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");

function login(event) {
  var username = document.getElementById("username").value;
  var password = document.getElementById("password").value;
  client.invoke("login", username, password, function(error, res, more) {
    if (res){
      notifier.notify({"title" : "Radiam", "message" : res});
    }
  });
}

document.addEventListener('DOMContentLoaded', function() {
  document.getElementById("login").addEventListener("click", login(event));
})

我错过了什么吗?同样,不是一个js人(我正在构建一个Python脚本的GUI,否则它工作得很好),但它似乎应该是显而易见的......

谢谢!

回答如下:

这很有效。我认为这是错误的听众类型,而且我不应该试图通过event

const notifier = require("node-notifier");
const zerorpc = require("zerorpc");
let client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");

function login() {
  var username = document.getElementById("username").value;
  var password = document.getElementById("password").value;
  client.invoke("login", username, password, function(error, res, more) {
    if (res){
      notifier.notify({"title" : "Radiam", "message" : res});
    }
  });
}

document.getElementById("login").addEventListener("click", login);
发布评论

评论列表 (0)

  1. 暂无评论