如何获取 BrowserWindow 的 url?

Posted

技术标签:

【中文标题】如何获取 BrowserWindow 的 url?【英文标题】:How to get the url of the BrowserWindow? 【发布时间】:2019-01-14 16:18:55 【问题描述】:

这是一个非常基本的问题。在电子中,如何检查 BrowserWindow 的 url/文件名?

let win;

app.on('ready', () => 
    win = new BrowserWindow();

    win.loadFile(path.join(__dirname, 'public', 'main.html'));

    win.on('closed', () => 
        app.quit();
    )
);

好的,这么说,这是代码,说在不同的(添加:插入)浏览器窗口中发生某个事件后,我想从主浏览器窗口获取网址(win)。

let addWin;

ipcMain.on('createAddWin', ()=>

    addWin = new BrowserWindow();

    addWin.loadFile(path.join(__dirname, 'public', 'add.html'));

    addWin.on('closed', () => 
        addWin = null
    );

ipcMain.on('add:insert', (e,insertObject) => 
//some event happens
//retrieve url from main window (win)
);

); 

我该怎么做呢,我宁愿不必向 win 发送事件,然后通过 ipcRenderer 发送 url,尽管这绝对是可能的。

【问题讨论】:

请提供一些代码来说明您的尝试? window.location.href? Get the current URL with javascript?的可能重复 伙计们,请注意这是关于从电子 BrowserWindow 对象中读取,而不是普通的 html 页面。根本不是那个问题的重复。 【参考方案1】:

使用窗口的webContents 实例属性的getURL() 实例方法可以获取窗口的URL:

let currentURL = win.webContents.getURL();

【讨论】:

以上是关于如何获取 BrowserWindow 的 url?的主要内容,如果未能解决你的问题,请参考以下文章

设置 browserWindow 始终在顶部,即使其他应用程序/游戏全屏 [Electron,Windows 操作系统]

从 BrowserWindow 电子类扩展时出错

在 Atom Electron 中以 60fps 将 <canvas> 图像从 BrowserWindow 复制到另一个

Electronjs - BrowserWindow 不是渲染器进程中的构造函数错误

带有 browserWindow 和 preload.js 的电子生成器。无法加载预加载脚本

在 Electron 中单击按钮重新打开 BrowserWindow 后,对象已被销毁异常