3

私は electron アプリを構築していますが、ページがそれ自体に POST するときに require が未定義であるという問題に遭遇しました。私の目標は、残念ながらこの投稿動作を持つ既存のサイトのラッパーとして electron を使用することです。preload と executeJavascript で多くの試行錯誤を繰り返した結果、require() を使用すると node-integration が機能することがわかりました。それは、リクエストが POST でない限りです。私は Electron とノードにかなり慣れていないので、単純なものが欠けているだけかもしれません!

この動作は、Electron 0.26.0 および 0.27.1 で発生します。

問題を再現する最も簡単な方法を次に示します。

パッケージ.json

{
"name": "PostExample",
"version": "0.1.0",
"main": "main.js",
"description": "Post Loses Global"
}

main.js

var app = require('app')
var BrowserWindow = require('browser-window')

var mainWindow = null;

app.on('window-all-closed', function() {
    app.quit()
});

app.on('ready', function() {

    mainWindow = new BrowserWindow({ 
        "node-integration": true,
    });

    mainWindow.loadUrl('file://' + __dirname + '/index.html')

    mainWindow.openDevTools()

});

index.html

<html>
 <script type="text/javascript">
    console.log(typeof global)
    try{
        var fs = require("fs");
    } catch(e){
        console.warn("ERROR", e)
    }
 </script>
<body>
 <h1>Posts to self</h1>
 <form action="" method="post">
    <input type="text" name="somevar" value="val" />
    <button type="submit">Go</button>
 </form>
</body>
</html>
4

0 に答える 0