Rah*_*hul 4 javascript jquery electron
我正在尝试使用该fs模块从文件中读取 JSON ,并将其显示在 Electron 应用程序中的divwith idlist中。我的代码index.js如下所示:
dialog.showOpenDialog((filenames) => {
if (!filenames) return;
fs.readFile(filenames[0], (err, data) => {
if (err) {
alert('Could not read file.\n\nDetails:\n' + err.message);
return;
}
let json = JSON.parse(data).en;
for (let i = 0; i < json.length; ++i) {
let html = "<div class='entry'><b>";
// Add more to html variable from json data
$('list').html(html);
}
});
});
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
未捕获的异常:
错误:jQuery 需要一个带有文档的窗口
如何从 JS 修改 DOM,为什么会出现此错误?
您可以使用executeJavascriptBrowserWindow 的 webContents 方法直接在 Renderer 进程中执行代码。
const { app, BrowserWindow} = require('electron')
const path = require('path')
const fs = require('fs')
app.once('ready', () => {
var mainWindow = new BrowserWindow()
mainWindow.loadURL(path.join(__dirname, 'index.html'))
fs.readFile(path.join(__dirname, 'test.json'), 'utf8', (err, data) => {
if (err) {
alert('Could not read file.\n\nDetails:\n' + err.message)
return
}
let json = JSON.parse(data)
for (let i in json) {
mainWindow.webContents.executeJavaScript(`
document.getElementById("list").innerHTML += '<br> ${i}: ${json[i]}'
`)
// can be replaced with
// $('#list').append('<br> ${i}: ${json[i]}')
// if html have jquery support
}
})
})
Run Code Online (Sandbox Code Playgroud)
要在电子中使用 jquery,您应该安装jquery模块并在 HTML 中引用它
<script>window.$ = window.jQuery = require('jquery');</script>
Run Code Online (Sandbox Code Playgroud)
详细说明可以在这里找到
| 归档时间: |
|
| 查看次数: |
14309 次 |
| 最近记录: |