| 
									
										
										
										
											2019-11-13 05:46:35 +00:00
										 |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  |   <head> | 
					
						
							|  |  |  |     <meta charset="UTF-8" /> | 
					
						
							|  |  |  |     <title>Open external links</title> | 
					
						
							|  |  |  |   </head> | 
					
						
							|  |  |  |   <body> | 
					
						
							|  |  |  |     <div class="demo"> | 
					
						
							|  |  |  |       <div class="demo-wrapper"> | 
					
						
							|  |  |  |         <div class="demo-box"> | 
					
						
							|  |  |  |           <div class="demo-controls"> | 
					
						
							|  |  |  |             <button class="demo-button" id="open-ex-links">View Demo</button> | 
					
						
							|  |  |  |           </div> | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             If you do not want your app to open website links | 
					
						
							|  |  |  |             <em>within</em> the app, you can use the <code>shell</code> module | 
					
						
							|  |  |  |             to open them externally. When clicked, the links will open outside | 
					
						
							|  |  |  |             of your app and in the user's default web browser. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             When the demo button is clicked, the electron website will open in | 
					
						
							|  |  |  |             your browser. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  |           <p></p> | 
					
						
							|  |  |  |           <h5>Renderer Process</h5> | 
					
						
							|  |  |  |           <pre><code> | 
					
						
							|  |  |  |                 const { shell } = require('electron') | 
					
						
							|  |  |  |                 const exLinksBtn = document.getElementById('open-ex-links') | 
					
						
							|  |  |  |                 exLinksBtn.addEventListener('click', (event) => { | 
					
						
							| 
									
										
										
										
											2020-02-16 16:46:41 -08:00
										 |  |  |                 shell.openExternal('https://electronjs.org') | 
					
						
							| 
									
										
										
										
											2023-02-01 12:59:16 +01:00
										 |  |  |                 }) | 
					
						
							| 
									
										
										
										
											2019-11-13 05:46:35 +00:00
										 |  |  |             </code></pre> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           <div class="demo-protip"> | 
					
						
							|  |  |  |             <h2>ProTip</h2> | 
					
						
							|  |  |  |             <strong>Open all outbound links externally.</strong> | 
					
						
							|  |  |  |             <p> | 
					
						
							|  |  |  |               You may want to open all <code>http</code> and | 
					
						
							|  |  |  |               <code>https</code> links outside of your app. To do this, query | 
					
						
							|  |  |  |               the document and loop through each link and add a listener. This | 
					
						
							|  |  |  |               app uses the code below which is located in | 
					
						
							|  |  |  |               <code>assets/ex-links.js</code>. | 
					
						
							|  |  |  |             </p> | 
					
						
							|  |  |  |             <h5>Renderer Process</h5> | 
					
						
							|  |  |  |             <pre><code> | 
					
						
							|  |  |  |                 const { shell } = require('electron') | 
					
						
							|  |  |  |                 const links = document.querySelectorAll('a[href]') | 
					
						
							| 
									
										
										
										
											2023-07-13 10:10:37 +02:00
										 |  |  |                 for (const link of links) { | 
					
						
							| 
									
										
										
										
											2019-11-13 05:46:35 +00:00
										 |  |  |                     const url = link.getAttribute('href') | 
					
						
							|  |  |  |                     if (url.indexOf('http') === 0) { | 
					
						
							| 
									
										
										
										
											2023-07-13 10:10:37 +02:00
										 |  |  |                         link.addEventListener('click', (e) => { | 
					
						
							|  |  |  |                             e.preventDefault() | 
					
						
							|  |  |  |                             shell.openExternal(url) | 
					
						
							|  |  |  |                         }) | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2019-11-13 05:46:35 +00:00
										 |  |  |             </code></pre> | 
					
						
							|  |  |  |           </div> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <script> | 
					
						
							|  |  |  |       // You can also require other files to run in this process | 
					
						
							|  |  |  |       require("./renderer.js"); | 
					
						
							|  |  |  |     </script> | 
					
						
							|  |  |  |   </body> | 
					
						
							|  |  |  | </html> |