我如何将javascript变量传递给电子并进行操纵

时间:2018-09-26 10:34:58

标签: javascript node.js electron

嗨,我对electron陌生,请多多包涵。

我遇到这样的情况:

  1. 我将从li

  2. 获取文件名
  3. 一旦filename我想用下面的代码编写它

    var fs = require('fs');
    fs.writeFile('gotfromjsvariable', 'Hello content!', function (err) 
    

    {         如果(err)抛出err;           console.log('Saved!');       });

假设gotfromjsvariable来自下面的代码

问题是,如何将其传递给电子main.js或同一文件node.js

$(document).on('click','#files li',function(){
   var gotfromjsvariable = $(this).data('filename');
   // gotfromjsvariable has to be sent a filename to nodejs or electron
   
   /*
  
 var fs = require('fs');
fs.writeFile('gotfromjsvariable', 'Hello content!', function (err) {
            if (err) throw err;
              console.log('Saved!');
  });
   
   */
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="files">
  <li data-filename="abc.json">abc.json</li>
  <li data-filename="pqr.json">pqr.json</li>
</ul>

1 个答案:

答案 0 :(得分:0)

基本上,您是通过ipcRenderer从Renderer进程向主进程发送消息(数据)的。

但是,由于Renderer进程也可以访问节点API,因此您的任务可以完全用html完成。您的固定代码如下所示:

<!DOCTYPE html>
  <html>
    <body>
      <ul id="files">
        <li data-filename="abc.json">abc.json</li>
        <li data-filename="pqr.json">pqr.json</li>
      </ul>
      <script>
        const fs = require('fs')
        window.$ = window.jQuery = require('jquery')
        $(document).on('click','#files', (e) => {
          var gotfromjsvariable = $(e.target).data('filename')
          fs.writeFile(gotfromjsvariable, 'Hello content!', (err) => {
            if (err) throw err
            console.log('saved')
          })
        })
      </script>
    </body>
 </html>

对于jquery,我使用了这种方法:https://stackoverflow.com/a/32621989/2550156