簡體   English   中英

nwjs - 在二進制文件上調用 function

[英]nwjs - call function on binary file

// source.js
function foo(){
    alert("its work!");
}

// main.js
nw.Window.open("index.html", {}, function (win) {});
setTimeout(() => {
  let win = nw.Window.get();
  win.evalNWBin(null, "binary.bin");
  foo();
}, 2000);

我運行以下命令來生成二進制文件:

nwjc source.js binary.bin

當我運行上面的代碼時,它顯示了這個錯誤:

Uncaught ReferenceError: foo is not defined

如何從主js調用binary.bin上的function?

因為您在package.json中執行"main": "index.js" ,所以代碼將在節點上下文中運行並且alert不是 function。

如果你改為"main": "index.html"然后有

<script>
  nw.Window.get().evalNWBin(null, 'binary.bin');
  foo();
</script>

它會正常工作。

您可以Right-Click > Inspect Background Page以查看節點進程開發工具的控制台日志錯誤。

或者,您可以在全局window object 上公開您的 function。

window.foo = function () {
  alert('It works');
};

您可以通過將代碼放入回調 function 來等待應用 Window 加載。

nw.Window.open('index.html', {}, function (win) {
  win.evalNWBin(null, 'binary.bin');
  win.window.foo();
});

那么你不需要“得到”window,你已經擁有了。 您可以訪問其全局window object 以訪問存儲在其上的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM