* 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 коммит произвёл GitHub
Родитель a8622aed7b
Коммит b14b876d50
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
36 изменённых файлов: 126 добавлений и 24 удалений

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -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
const contextMenuBtn = document.getElementById('context-menu')
@ -6,3 +6,15 @@ const contextMenuBtn = document.getElementById('context-menu')
contextMenuBtn.addEventListener('click', () => {
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)
})
}
}

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -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)
})
}
}

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -11,7 +11,7 @@ ipcRenderer.on('selected-directory', (event, 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')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
@ -19,4 +19,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url)
})
}
})
}

Просмотреть файл

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

Просмотреть файл

@ -12,7 +12,7 @@ ipcRenderer.on('saved-file', (event, 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')
if (url.indexOf('http') === 0) {
link.addEventListener('click', (e) => {
@ -20,4 +20,4 @@ Array.prototype.forEach.call(links, (link) => {
shell.openExternal(url)
})
}
})
}

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -11,3 +11,15 @@ fileManagerBtn.addEventListener('click', (event) => {
exLinksBtn.addEventListener('click', (event) => {
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)
})
}
}

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -1,3 +1,5 @@
const { shell } = require('electron')
const basicNotification = {
title: 'Basic Notification',
body: 'Short message part'
@ -27,3 +29,15 @@ basicNotificationButton.addEventListener('click', () => {
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)
})
}
}

Просмотреть файл

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

Просмотреть файл

@ -1,3 +1,5 @@
const { shell } = require('electron')
const versionInfoBtn = document.getElementById('version-info')
const electronVersion = process.versions.electron
@ -6,3 +8,15 @@ versionInfoBtn.addEventListener('click', () => {
const message = `This app is using Electron version: ${electronVersion}`
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)
})
}
}

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

@ -1,4 +1,4 @@
const { ipcRenderer } = require('electron')
const { ipcRenderer, shell } = require('electron')
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>'
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)
})
}
}

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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

Просмотреть файл

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