зеркало из https://github.com/electron/electron.git
feat: add options to webContents.loadFile (#14515)
This commit is contained in:
Родитель
7a766e82f9
Коммит
58577bd431
|
@ -1221,9 +1221,13 @@ win.loadURL('http://localhost:8000/post', {
|
|||
})
|
||||
```
|
||||
|
||||
#### `win.loadFile(filePath)`
|
||||
#### `win.loadFile(filePath[, options])`
|
||||
|
||||
* `filePath` String
|
||||
* `options` Object (optional)
|
||||
* `query` Object (optional) - Passed to `url.format()`.
|
||||
* `search` String (optional) - Passed to `url.format()`.
|
||||
* `hash` String (optional) - Passed to `url.format()`.
|
||||
|
||||
Same as `webContents.loadFile`, `filePath` should be a path to an HTML
|
||||
file relative to the root of your application. See the `webContents` docs
|
||||
|
|
|
@ -647,9 +647,13 @@ const options = {extraHeaders: 'pragma: no-cache\n'}
|
|||
webContents.loadURL('https://github.com', options)
|
||||
```
|
||||
|
||||
#### `contents.loadFile(filePath)`
|
||||
#### `contents.loadFile(filePath[, options])`
|
||||
|
||||
* `filePath` String
|
||||
* `options` Object (optional)
|
||||
* `query` Object (optional) - Passed to `url.format()`.
|
||||
* `search` String (optional) - Passed to `url.format()`.
|
||||
* `hash` String (optional) - Passed to `url.format()`.
|
||||
|
||||
Loads the given file in the window, `filePath` should be a path to
|
||||
an HTML file relative to the root of your application. For instance
|
||||
|
|
|
@ -182,8 +182,8 @@ Object.assign(BrowserWindow.prototype, {
|
|||
getURL (...args) {
|
||||
return this.webContents.getURL()
|
||||
},
|
||||
loadFile (filePath) {
|
||||
return this.webContents.loadFile(filePath)
|
||||
loadFile (...args) {
|
||||
return this.webContents.loadFile(...args)
|
||||
},
|
||||
reload (...args) {
|
||||
return this.webContents.reload(...args)
|
||||
|
|
|
@ -243,14 +243,19 @@ WebContents.prototype.getZoomLevel = function (callback) {
|
|||
})
|
||||
}
|
||||
|
||||
WebContents.prototype.loadFile = function (filePath) {
|
||||
WebContents.prototype.loadFile = function (filePath, options = {}) {
|
||||
if (typeof filePath !== 'string') {
|
||||
throw new Error('Must pass filePath as a string')
|
||||
}
|
||||
const {query, search, hash} = options
|
||||
|
||||
return this.loadURL(url.format({
|
||||
protocol: 'file',
|
||||
slashes: true,
|
||||
pathname: path.resolve(app.getAppPath(), filePath)
|
||||
pathname: path.resolve(app.getAppPath(), filePath),
|
||||
query,
|
||||
search,
|
||||
hash
|
||||
}))
|
||||
}
|
||||
|
||||
|
|
|
@ -1441,10 +1441,8 @@ describe('BrowserWindow module', () => {
|
|||
}
|
||||
})
|
||||
ipcRenderer.send('set-web-preferences-on-next-new-window', w.webContents.id, 'preload', preload)
|
||||
let htmlPath = path.join(fixtures, 'api', 'sandbox.html?window-open-external')
|
||||
const pageUrl = 'file://' + htmlPath
|
||||
let popupWindow
|
||||
w.loadURL(pageUrl)
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'window-open-external'})
|
||||
w.webContents.once('new-window', (e, url, frameName, disposition, options) => {
|
||||
assert.equal(url, 'http://www.google.com/#q=electron')
|
||||
assert.equal(options.width, 505)
|
||||
|
@ -1518,8 +1516,6 @@ describe('BrowserWindow module', () => {
|
|||
})
|
||||
ipcRenderer.send('set-web-preferences-on-next-new-window', w.webContents.id, 'preload', preload)
|
||||
|
||||
let htmlPath = path.join(fixtures, 'api', 'sandbox.html?verify-ipc-sender')
|
||||
const pageUrl = 'file://' + htmlPath
|
||||
let childWc
|
||||
w.webContents.once('new-window', (e, url, frameName, disposition, options) => {
|
||||
childWc = options.webContents
|
||||
|
@ -1538,7 +1534,7 @@ describe('BrowserWindow module', () => {
|
|||
'parent-answer',
|
||||
'child-answer'
|
||||
], done)
|
||||
w.loadURL(pageUrl)
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'verify-ipc-sender'})
|
||||
})
|
||||
|
||||
describe('event handling', () => {
|
||||
|
@ -1546,7 +1542,7 @@ describe('BrowserWindow module', () => {
|
|||
waitForEvents(w, [
|
||||
'page-title-updated'
|
||||
], done)
|
||||
w.loadURL('file://' + path.join(fixtures, 'api', 'sandbox.html?window-events'))
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'window-events'})
|
||||
})
|
||||
|
||||
it('works for stop events', (done) => {
|
||||
|
@ -1555,7 +1551,7 @@ describe('BrowserWindow module', () => {
|
|||
'did-fail-load',
|
||||
'did-stop-loading'
|
||||
], done)
|
||||
w.loadURL('file://' + path.join(fixtures, 'api', 'sandbox.html?webcontents-stop'))
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'webcontents-stop'})
|
||||
})
|
||||
|
||||
it('works for web contents events', (done) => {
|
||||
|
@ -1569,7 +1565,7 @@ describe('BrowserWindow module', () => {
|
|||
'did-frame-finish-load',
|
||||
'dom-ready'
|
||||
], done)
|
||||
w.loadURL('file://' + path.join(fixtures, 'api', 'sandbox.html?webcontents-events'))
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'webcontents-events'})
|
||||
})
|
||||
})
|
||||
|
||||
|
@ -1640,7 +1636,7 @@ describe('BrowserWindow module', () => {
|
|||
sandbox: true
|
||||
}
|
||||
})
|
||||
w.loadURL('file://' + path.join(fixtures, 'api', 'sandbox.html?allocate-memory'))
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'allocate-memory'})
|
||||
ipcMain.once('answer', function (event, {bytesBeforeOpen, bytesAfterOpen, bytesAfterClose}) {
|
||||
const memoryIncreaseByOpen = bytesAfterOpen - bytesBeforeOpen
|
||||
const memoryDecreaseByClose = bytesAfterOpen - bytesAfterClose
|
||||
|
@ -1663,7 +1659,7 @@ describe('BrowserWindow module', () => {
|
|||
sandbox: true
|
||||
}
|
||||
})
|
||||
w.loadURL('file://' + path.join(fixtures, 'api', 'sandbox.html?reload-remote'))
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'reload-remote'})
|
||||
|
||||
ipcMain.on('get-remote-module-path', (event) => {
|
||||
event.returnValue = path.join(fixtures, 'module', 'hello.js')
|
||||
|
@ -1698,7 +1694,7 @@ describe('BrowserWindow module', () => {
|
|||
})
|
||||
ipcRenderer.send('set-web-preferences-on-next-new-window', w.webContents.id, 'preload', preload)
|
||||
|
||||
w.loadURL('file://' + path.join(fixtures, 'api', 'sandbox.html?reload-remote-child'))
|
||||
w.loadFile(path.join(fixtures, 'api', 'sandbox.html'), {search: 'reload-remote-child'})
|
||||
|
||||
ipcMain.on('get-remote-module-path', (event) => {
|
||||
event.returnValue = path.join(fixtures, 'module', 'hello-child.js')
|
||||
|
|
|
@ -64,12 +64,7 @@ describe('crashReporter module', () => {
|
|||
|
||||
stopServer = startServer({
|
||||
callback (port) {
|
||||
const crashUrl = url.format({
|
||||
protocol: 'file',
|
||||
pathname: path.join(fixtures, 'api', 'crash.html'),
|
||||
search: '?port=' + port
|
||||
})
|
||||
w.loadURL(crashUrl)
|
||||
w.loadFile(path.join(fixtures, 'api', 'crash.html'), {query: {port}})
|
||||
},
|
||||
processType: 'renderer',
|
||||
done: done
|
||||
|
|
|
@ -1445,6 +1445,7 @@ describe('net module', () => {
|
|||
ipcRenderer.send('eval', `
|
||||
const {net} = require('electron')
|
||||
const http = require('http')
|
||||
const url = require('url')
|
||||
const netRequest = net.request('${server.url}${netRequestUrl}')
|
||||
netRequest.on('response', function (netResponse) {
|
||||
const serverUrl = url.parse('${server.url}')
|
||||
|
|
|
@ -8,7 +8,6 @@ const {Coverage} = require('electabul')
|
|||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const url = require('url')
|
||||
const util = require('util')
|
||||
const v8 = require('v8')
|
||||
|
||||
|
@ -139,14 +138,12 @@ app.on('ready', function () {
|
|||
backgroundThrottling: false
|
||||
}
|
||||
})
|
||||
window.loadURL(url.format({
|
||||
pathname: path.join(__dirname, '/index.html'),
|
||||
protocol: 'file',
|
||||
window.loadFile('static/index.html', {
|
||||
query: {
|
||||
grep: argv.grep,
|
||||
invert: argv.invert ? 'true' : ''
|
||||
}
|
||||
}))
|
||||
})
|
||||
window.on('unresponsive', function () {
|
||||
var chosen = dialog.showMessageBox(window, {
|
||||
type: 'warning',
|
||||
|
|
Загрузка…
Ссылка в новой задаче