docs: fix fiddles (#39060)

* refactor: replace Array.prototype.forEach.call with plain for-of

* fix: add missing contextIsolation: false

* fix: open links in default browser
This commit is contained in:
Milan Burda 2023-07-13 10:10:37 +02:00 committed by GitHub
parent a8622aed7b
commit b14b876d50
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 126 additions and 24 deletions

View file

@ -12,6 +12,7 @@ function createWindow () {
height: 300, height: 300,
title: 'Take a Screenshot', title: 'Take a Screenshot',
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
} }

View file

@ -294,6 +294,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -1,4 +1,4 @@
const { ipcRenderer } = require('electron') const { ipcRenderer, shell } = require('electron')
// Tell main process to show the menu when demo button is clicked // Tell main process to show the menu when demo button is clicked
const contextMenuBtn = document.getElementById('context-menu') const contextMenuBtn = document.getElementById('context-menu')
@ -6,3 +6,15 @@ const contextMenuBtn = document.getElementById('context-menu')
contextMenuBtn.addEventListener('click', () => { contextMenuBtn.addEventListener('click', () => {
ipcRenderer.send('show-context-menu') ipcRenderer.send('show-context-menu')
}) })
const links = document.querySelectorAll('a[href]')
for (const link of links) {
const url = link.getAttribute('href')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
e.preventDefault()
shell.openExternal(url)
})
}
}

View file

@ -68,6 +68,10 @@
</div> </div>
</div> </div>
</div> </div>
<script>
// You can also require other files to run in this process
require("./renderer.js");
</script>
</body> </body>
</html> </html>

View file

@ -11,6 +11,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -0,0 +1,13 @@
const { shell } = require('electron')
const links = document.querySelectorAll('a[href]')
for (const link of links) {
const url = link.getAttribute('href')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
e.preventDefault()
shell.openExternal(url)
})
}
}

View file

@ -11,6 +11,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -7,7 +7,7 @@ errorBtn.addEventListener('click', event => {
ipcRenderer.send('open-error-dialog') ipcRenderer.send('open-error-dialog')
}) })
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -15,4 +15,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }

View file

@ -11,6 +11,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -14,7 +14,7 @@ ipcRenderer.on('information-dialog-selection', (event, index) => {
document.getElementById('info-selection').innerHTML = message document.getElementById('info-selection').innerHTML = message
}) })
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -22,4 +22,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }

View file

@ -11,6 +11,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -11,7 +11,7 @@ ipcRenderer.on('selected-directory', (event, path) => {
document.getElementById('selected-file').innerHTML = `You selected: ${path}` document.getElementById('selected-file').innerHTML = `You selected: ${path}`
}) })
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -19,4 +19,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }

View file

@ -11,6 +11,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -12,7 +12,7 @@ ipcRenderer.on('saved-file', (event, path) => {
document.getElementById('file-saved').innerHTML = `Path selected: ${path}` document.getElementById('file-saved').innerHTML = `Path selected: ${path}`
}) })
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -20,4 +20,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }

View file

@ -10,6 +10,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -3,7 +3,7 @@ const shell = require('electron').shell
const links = document.querySelectorAll('a[href]') const links = document.querySelectorAll('a[href]')
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -11,7 +11,7 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }
const dragFileLink = document.getElementById('drag-file-link') const dragFileLink = document.getElementById('drag-file-link')

View file

@ -45,14 +45,15 @@
<pre><code> <pre><code>
const { shell } = require('electron') const { shell } = require('electron')
const links = document.querySelectorAll('a[href]') const links = document.querySelectorAll('a[href]')
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
e.preventDefault() e.preventDefault()
shell.openExternal(url) shell.openExternal(url)
}) })
}}) }
}
</code></pre> </code></pre>
</div> </div>
</div> </div>

View file

@ -8,6 +8,7 @@ function createWindow () {
height: 400, height: 400,
title: 'Open External Links', title: 'Open External Links',
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
} }

View file

@ -80,7 +80,7 @@ const shell = require('electron').shell
const links = document.querySelectorAll('a[href]') const links = document.querySelectorAll('a[href]')
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -88,7 +88,7 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }
</code> </code>
</pre> </pre>
</div> </div>

View file

@ -11,6 +11,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -8,6 +8,7 @@ function createWindow () {
height: 400, height: 400,
title: 'Open Path in File Manager', title: 'Open Path in File Manager',
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
} }

View file

@ -11,3 +11,15 @@ fileManagerBtn.addEventListener('click', (event) => {
exLinksBtn.addEventListener('click', (event) => { exLinksBtn.addEventListener('click', (event) => {
shell.openExternal('https://electronjs.org') shell.openExternal('https://electronjs.org')
}) })
const links = document.querySelectorAll('a[href]')
for (const link of links) {
const url = link.getAttribute('href')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
e.preventDefault()
shell.openExternal(url)
})
}
}

View file

@ -8,6 +8,7 @@ function createWindow () {
height: 300, height: 300,
title: 'Basic Notification', title: 'Basic Notification',
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
} }

View file

@ -11,6 +11,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -8,6 +8,7 @@ function createWindow () {
height: 300, height: 300,
title: 'Advanced Notification', title: 'Advanced Notification',
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
} }

View file

@ -1,3 +1,5 @@
const { shell } = require('electron')
const basicNotification = { const basicNotification = {
title: 'Basic Notification', title: 'Basic Notification',
body: 'Short message part' body: 'Short message part'
@ -27,3 +29,15 @@ basicNotificationButton.addEventListener('click', () => {
console.log('Notification clicked') console.log('Notification clicked')
} }
}) })
const links = document.querySelectorAll('a[href]')
for (const link of links) {
const url = link.getAttribute('href')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
e.preventDefault()
shell.openExternal(url)
})
}
}

View file

@ -8,6 +8,7 @@ function createWindow () {
height: 400, height: 400,
title: 'Get version information', title: 'Get version information',
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
} }

View file

@ -1,3 +1,5 @@
const { shell } = require('electron')
const versionInfoBtn = document.getElementById('version-info') const versionInfoBtn = document.getElementById('version-info')
const electronVersion = process.versions.electron const electronVersion = process.versions.electron
@ -6,3 +8,15 @@ versionInfoBtn.addEventListener('click', () => {
const message = `This app is using Electron version: ${electronVersion}` const message = `This app is using Electron version: ${electronVersion}`
document.getElementById('got-version-info').innerHTML = message document.getElementById('got-version-info').innerHTML = message
}) })
const links = document.querySelectorAll('a[href]')
for (const link of links) {
const url = link.getAttribute('href')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
e.preventDefault()
shell.openExternal(url)
})
}
}

View file

@ -11,6 +11,7 @@ function createWindow () {
height: 400, height: 400,
title: 'Create a frameless window', title: 'Create a frameless window',
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -12,6 +12,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -1,4 +1,4 @@
const { ipcRenderer } = require('electron') const { ipcRenderer, shell } = require('electron')
const newWindowBtn = document.getElementById('frameless-window') const newWindowBtn = document.getElementById('frameless-window')
@ -6,3 +6,15 @@ newWindowBtn.addEventListener('click', () => {
const url = 'data:text/html,<h2>Hello World!</h2><a id="close" href="javascript:window.close()">Close this Window</a>' const url = 'data:text/html,<h2>Hello World!</h2><a id="close" href="javascript:window.close()">Close this Window</a>'
ipcRenderer.send('create-frameless-window', { url }) ipcRenderer.send('create-frameless-window', { url })
}) })
const links = document.querySelectorAll('a[href]')
for (const link of links) {
const url = link.getAttribute('href')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
e.preventDefault()
shell.openExternal(url)
})
}
}

View file

@ -22,6 +22,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -14,7 +14,7 @@ manageWindowBtn.addEventListener('click', (event) => {
ipcRenderer.send('create-demo-window') ipcRenderer.send('create-demo-window')
}) })
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -22,4 +22,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }

View file

@ -12,6 +12,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -7,6 +7,7 @@ function createWindow () {
width: 800, width: 800,
height: 600, height: 600,
webPreferences: { webPreferences: {
contextIsolation: false,
nodeIntegration: true nodeIntegration: true
} }
}) })

View file

@ -28,7 +28,7 @@ listenToWindowBtn.addEventListener('click', () => {
const links = document.querySelectorAll('a[href]') const links = document.querySelectorAll('a[href]')
Array.prototype.forEach.call(links, (link) => { for (const link of links) {
const url = link.getAttribute('href') const url = link.getAttribute('href')
if (url.indexOf('http') === 0) { if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => { link.addEventListener('click', (e) => {
@ -36,4 +36,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url) shell.openExternal(url)
}) })
} }
}) }