STAFF BLOG
2017.04
29

調べても古い方法しか見つからず、適当にやったら動いたので備忘。

概要
メインプロセスでメインウィンドウ生成時に
「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);
   });
 });
このページを友達とシェアしよう!