gpt4 book ai didi

html - Bootstrap Accordion不会随Electron一起折叠,但HTML文件在Electron之外可以正常工作

转载 作者:行者123 更新时间:2023-12-03 12:33:40 25 4
gpt4 key购买 nike

我有两个正在使用同一HTML页面的运行示例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<title>Document</title>
</head>
<body>
<table class="table">
<tr class="head">
<th></th>
<th>Skill</th>
<th>Cost</th>
<th>Ranks</th>
<th>Total</th>
<th>Adjusted Total</th>
<th></th>
</tr>
<tr id="content_1">
<td><a role="button" data-toggle="collapse" href="#additional_row1" aria-expanded="false" aria-controls="additional_row1"><i class="fa fa-plus"></i></a></td>
<td>Artistic</td>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td colspan=7 class="collapse" id="additional_row1">test</td>
</tr>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

<script>

</script>
</body>
</html>

如果我自己在浏览器中运行此HTML代码,那么它将起作用。

如果我在Electron中运行它,它一旦扩展就不会崩溃。我不知道为什么Electron拒绝正确切换它。

对于这里值得的是我的 Electron package.json
{
"name": "electronproject",
"version": "1.0.0",
"description": "Shopping List desktop app",
"main": "main.js",
"scripts": {
"start": "electron .",
"package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
"package-win": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Shopping List App\"",
"package-linux": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=linux --arch=x64 --icon=assets/icons/png/icon.png --prune=true --out=release-builds"
},
"author": "David Klecker",
"license": "ISC",
"dependencies": {
"jquery": "^3.5.0",
"boostrap": "^2.0.0",
"electron": "^8.2.0",
"electron-reload": "^1.5.0",
"xml2js": "^0.4.23"
},
"devDependencies": {
"electron-packager": "^14.2.1"
}
}

最佳答案

这可能是使jQuery与Electron一起使用的问题。如果在渲染器过程中打开了Node集成,则jQuery会由于尝试定义的一些符号冲突而导致加载问题。

Electron FAQ中有更多信息。

解决此问题的最简单方法是在BrowserWindow中关闭nodeIntegration

// In the main process.
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false
}
})

如果要保持 nodeIntegration开启,可以在导入jQuery之前重命名有冲突的符号,从而避免命名冲突。
<script>
window.nodeRequire = require;
delete window.require;
delete window.exports;
delete window.module;
</script>
<script type="text/javascript" src="jquery.js"></script>

我可以让您的代码段与Electron 8.0.0上的上述任何一种解决方案一起正常使用。

关于html - Bootstrap Accordion不会随Electron一起折叠,但HTML文件在Electron之外可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61177485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com