調べても古い方法しか見つからず、適当にやったら動いたので備忘。
概要
メインプロセスでメインウィンドウ生成時に
「new-window」イベントをバインドして以下をちょいちょいする
・URLをshellモジュールのshell.openExternal()に渡す
・イベントはpreventDefaultして本来の小窓が開くのを阻止
注意
・あくまでnew-windowなのでaタグに_blankつけないと動作しない
・動作確認はwindows機(electron –version: v1.4.13)のみ
以下ソース
//main.js
'use strict';
var electron = require("electron");
var shell = electron.shell;
var app = electron.app;
var BrowserWindow = electron.BrowserWindow;
app.on('ready', function() {
var mainWindow = new BrowserWindow({width: 1600, height: 600});
mainWindow.loadURL('file://' + __dirname + '/index.html');
//新しいウィンドウイベント横取りして既定のブラウザで開く(現在ページの遷移には関知しない)
mainWindow.webContents.on('new-window', function(e,url){
//e = ""; ↓の方が行儀が良いっぽい
e.preventDefault();
shell.openExternal(url);
});
});
