DRYな備忘録

Don't Repeat Yourself.

electronのWebView.executeJavaScriptがコールバックを呼ばない問題

以下のようなコードを書いて、electronのwindow内に作ったWebViewの中の情報を取得しようとした。

let webview = document.createElement('webview');
webview.addEventListener('did-finish-load', function() {
    // 第1引数に内部で実行したいJavaScript文を
    // 第2引数にそのコールバックを渡す
    webview.executeJavaScript(
        "return { hoge: document.querySelector('div.foo.bar>a.baz').href}",
        function(res) { console.log(res); }
    );
});
document.body.appendChild(webview);
webview.src = "http://example.com";

ぜんぜん動かない

解決

webview.addEventListener('did-finish-load', function() {
    // 第1引数に内部で実行したいJavaScript文を
    // 第2引数にそのコールバックを渡す
    webview.executeJavaScript(
-       "return { hoge: document.querySelector('div.foo.bar>a.baz').href}",
+       "{ hoge: document.querySelector('div.foo.bar>a.baz').href}",
        function(res) { console.log(res); }
    );
});

雑感

returnしたらあかんとか知らんがな

DRYな備忘録として