Come consentire i popup nelle visualizzazioni Web create dinamicamente in Electron.js

Come consentire i popup nelle visualizzazioni Web create dinamicamente in Electron.js


Il mio progetto della barra dei menu smol utilizza lo speciale tag webview di Electron per generare dinamicamente un elenco di finestre del browser secondario per la chat. Negli ultimi due mesi ho avuto un problema con i popup SSO, ovvero che semplicemente non funzionano affatto, presumibilmente perché Electron blocca i popup per impostazione predefinita.

La visualizzazione web di Electron ha un tagallowpopups che lo consente se si effettua la visualizzazione web in modo statico, ma se la si aggiunge dinamicamente non funziona.

const webview = document.createElement('webview');
webview.id = provider.webviewId;
webview.src = provider.url;
webview.setAttribute('allowpopups', 'true'); 

Ce l’ho anche qui:

import { ProviderInterface } from 'lib/types';

export default function Pane({ provider }: { provider: ProviderInterface }) {
	return (
		<div key={provider.paneId()} className="page darwin">
			<webview
				
				allowpopups="true"
				id={provider.webviewId}
				src={provider.url}
				useragent={
					provider.getUserAgent() ? provider.getUserAgent() : undefined
				}
			/>
		div>
	);
}

ma produce a TypeError: this._windowOpenHandler is not a function errore.

immagine

l’uso ingenuo di setWindowOpenHandler non sembra funzionare.

Dopo circa mezz’ora di ricerca ho trovato questa risposta StackOverflow. Commentando qui affinché altri possano trovarlo.

La soluzione è che devi impostarlo all’interno del tuo processo principale:

	app.on('web-contents-created', (e, wc) => {
		
		wc.setWindowOpenHandler((handler) => {
				return {action : "allow"}; 
		});
	});

PR qui: https://github.com/smol-ai/menubar/pull/116/commits/89585ee94f27760e220efee5dc03e5480b8ca078



Source link

Postagens Similares

  • Apple meluncurkan Studio Display baru dan Studio Display XDR yang semuanya baru

    3 Maret 2026 SIARAN PERS Apple meluncurkan Studio Display baru dan Studio Display XDR yang semuanya baru Studio Display XDR adalah layar pro terbaik di dunia, menampilkan layar Retina XDR 5K 27 inci dengan lampu latar mini-LED, kecerahan puncak HDR 2000 nits, dan kecepatan refresh 120Hz CUPERTINO, CALIFORNIA Apple hari ini mengumumkan rangkaian layar baru…

  • Sanduku la nguva hadi Unicode (grok-mermaid)

    Nilipokuwa nikichunguza msingi wa msimbo wa wakala mpya wa usimbaji wa Grok CLI aliye na vyanzo huria nilikutana na xai-grok-markdown/src/mermaid.rs, “kionyeshi cha mwisho kinachojitosheleza cha michoro ya Mermaid” iliyoandikwa kwa Rust. Niliona itakuwa ya kufurahisha kujaribu hiyo kwenye kivinjari kupitia WebAssembly. Hapa kuna onyesho nililoendesha katika Nambari ya Claude ya wavuti (Faili ya 5), ​​na…

  • Ändern Sie Ihren Namen

    August 2015 Wenn Sie ein US-Startup namens X haben und nicht über x.com, sollten Sie wahrscheinlich Ihren Namen ändern. Der Grund liegt nicht nur darin, dass die Leute dich nicht finden können. Insbesondere für Unternehmen mit mobilen Apps ist der richtige Domainname nicht mehr so ​​wichtig wie früher, um Benutzer zu gewinnen. Das Problem, wenn…

  • बीबीसी कसे बनले « समिझडेटा

    (AIUI इ. इ.) सुरुवातीला वायरलेस सेट होते. परंतु त्यांचा वापर हेरांकडून परकीय सत्तेसाठी होऊ शकतो याची सरकारला काळजी होती. त्यामुळे वायरलेस मालकांनी परवाने काढण्याची मागणी केली. परवाने मोफत होते सरकारला फक्त कोणाकडे वायरलेस आहे हे जाणून घ्यायचे होते. फक्त बाबतीत. मग कोणीतरी प्रसारणाची कल्पना सुचली. संगीत, व्याख्याने, बातम्या, अशा प्रकारची गोष्ट. सरकारने एक योजना आणली….

  • Как получить новые идеи

    Январь 2023 г. (Кто-то загрузил мои эссе в GPT, чтобы создать что-то, что могло бы отвечать на основанные на них вопросы, а затем спросил, откуда берутся хорошие идеи. Ответ был нормальный, но не то, что я бы сказал. Вот что я бы сказал.) Чтобы получить новые идеи, нужно заметить аномалии: что кажется странным, отсутствующим или…

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *