2016-03-18 4 views
-1

レンダラープロセス(Webページ)からナイトメアのメインプロセス(ノード)にメッセージを送信するにはどうすればよいですか?電子の中にipcがあり、ナイトメアがエレクトロンの上に建設されているので、それは可能だと思いますが、私はどのように考え出すことができません。そのようなレンダラープロセスからナイトメアのノードプロセスにメッセージを送信

何か:

http://example.com

<script type="text/javascript"> 
window.postMessage('aaaaaaaa', '*'); 
</script> 

index.js

let nightmare = new Nightmare(); 
nightmare.on('message', function(e) { 
console.log(e.data); // will output aaaaaaaa 
}); 

nightmare.goto('http://example.com').then(function() { 
console.log('loaded'); 
}); 
+0

あなたは何をしようとしているのかについてより多くの背景を提供できますか? – Ross

+0

@Ross javascriptからノードプロセスにメッセージを投稿できるページをロードしたいのですが、このjsがどのように見えるのか分かりません。 –

+0

私はもっと具体的にすべきでした:あなたがしようとしていることを示すサンプルコードを提供できますか? – Ross

答えて

1

あなたは.evaluate()を使用しない理由ページからデータを取得しようとしている場合は?ような何か:

nightmare.goto('http://example.com') 
    .evaluate(function(){ 
     var element = document.querySelector('some-element.query'); 
     return element.value; 
    }) 
    .then(function(value){ 
     console.log(value); 
    }); 

あなたの元の例にプラグインが、それはラップエレクトロンインスタンスまでナイトメア上で許可されるまで、あなたは、任意のイベントを送信することはできません。 Nightmare #354のナイトメアのコアに任意のイベントを追加する議論がありました。これはナイトメア#367で修正しようとしました。任意のイベントを追加することは#425の下のプラグインでなければならないと判断されました。プラグインPRは受け入れられていませんが、プラグインのプラグインはis already completedです。

関連する問題