diff --git a/README.md b/README.md index 69d12b4..97a7504 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,6 @@ Electron-tabs uses webviews, so you first need to use the following `webPreferen ```js const mainWindow = new electron.BrowserWindow({ webPreferences: { - nodeIntegration: true, webviewTag: true } }); diff --git a/demo/app.js b/demo/app.js index f485185..d747f7e 100644 --- a/demo/app.js +++ b/demo/app.js @@ -4,7 +4,6 @@ const app = electron.app; app.on('ready', function () { const mainWindow = new electron.BrowserWindow({ webPreferences: { - nodeIntegration: true, webviewTag: true } }); diff --git a/index.js b/index.js index 8b79863..9e8d4e3 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,3 @@ -const EventEmitter = require("events"); - if (!document) { throw Error("electron-tabs module must be called in renderer process"); } @@ -22,6 +20,19 @@ if (!document) { document.getElementsByTagName("head")[0].appendChild(styleTag); })(); +/** + * This makes the browser EventTarget API work similar to EventEmitter + */ +class EventEmitter extends EventTarget { + emit (type, ...args) { + this.dispatchEvent(new CustomEvent(type, { detail: args })); + } + + on (type, fn) { + this.addEventListener(type, ({ detail }) => fn.apply(this, detail)); + } +} + class TabGroup extends EventEmitter { constructor (args = {}) { super();