|
|
面冷心慈的熊猫 · 请问,用 Electron ...· 1 周前 · |
|
|
傲视众生的鞭炮 · electron调用DLL开发记录 | ...· 1 周前 · |
|
|
呐喊的煎鸡蛋 · Microsoft Edge ...· 5 月前 · |
|
|
彷徨的骆驼 · sana系列动漫:厕所少年、白色巨猿等奇幻作 ...· 1 年前 · |
|
|
呐喊的海龟 · 粤靓湾一洗黑染发剂植物自然黑中老年纯黑色一支 ...· 2 年前 · |
|
|
开心的烤土司 · 人眼感知到的颜色与真实物理世界的颜色有什么区 ...· 2 年前 · |
有没有什么(简单的/内置的方式)打开一个新的浏览器(我指的是默认的OS浏览器)窗口来打开Electron的链接,而不是访问你的Electron应用程序中的链接?
您可以简单地使用:
require("shell").openExternal("http://www.google.com")
编辑:@Arjun Kava的答案现在好多了。
这个答案相当陈旧,并且假设您有jQuery。
const shell = require('electron').shell;
// assuming $ is jQuery
$(document).on('click', 'a[href^="http"]', function(event) {
event.preventDefault();
shell.openExternal(this.href);
});
要在实际浏览器(Chrome、Mozilla等)中运行Electron项目,请将以下代码添加到您的脚本中:
aTags = document.getElementsByTagName("a");
for (var i = 0; i < aTags.length; i++) {
aTags[i].setAttribute("onclick","require('shell').openExternal('" + aTags[i].href + "')");
aTags[i].href = "#";
}
mainWindow.webContents.on('new-window', function(e, url) {
e.preventDefault();
require('electron').shell.openExternal(url);
});
要求您在锚定标记上使用target="_blank“。
要在电子项目中打开外部链接,您需要使用模块外壳(
https://www.electronjs.org/docs/api/shell#shell
)和方法
openExternal
。
但是,如果您正在寻找实现该逻辑的抽象方法,则可以为target属性的自定义目标创建一个处理程序。
const {shell} = require('electron');
if (document.readyState != "complete") {
document.addEventListener('DOMContentLoaded', function() {
init()
}, false);
} else {
init();
function init(){
handleExternalLinks();
//other inits
function handleExternalLinks(){
let links = document.getElementsByTagName('a')
let a,i = 0;
while (links[i]){
a = links[i]
//If <a target="_external">, so open using shell.
if(a.getAttribute('target') == '_external'){
a.addEventListener('click',(ev => {
ev.preventDefault();
let url = a.href;
shell.openExternal(url);
a.setAttribute('href', '#');
return false;
console.log(a,a.getAttribute('external'))
}
根据电子版本^12.0.0中的折旧,我的代码片段提供了线索
const win = new BrowserWindow();
win.webContents.setWindowOpenHandler(({ url }) => {
// config.fileProtocol is my custom file protocol
if (url.startsWith(config.fileProtocol)) {
return { action: 'allow' };
// open url in a browser and prevent default
shell.openExternal(url);
return { action: 'deny' };
|
|
彷徨的骆驼 · sana系列动漫:厕所少年、白色巨猿等奇幻作品大解析 1 年前 |