Eel.* 不是函数
Eel.* is not a function
这是我第一次尝试鳗鱼。我有一个带有某些功能的 python 脚本,我正在尝试使用 @eel.expose
与它们通信,但它给了我一个 javascript 错误 - main.html:10 Uncaught TypeError: eel.startEncryption is not a function
这是我的代码:
<head>
<title>Undefined</title>
<link rel="stylesheet" href="w3pro.css">
<script type="text/javascript" src="/eel.js"></script>
<script>
function startEncryption(mode){
massage = document.getElementById("massage").value;
code = document.getElementById("code").value;
string = eel.startEncryption(mode, massage, code);
document.getElementById("result").innerHTML += string;
}
</script>
</head>
<body>
<header class="w3-panel">
<h1>Vigenere Encryption</h1>
</header>
<div class="w3-panel">
<span>Message:<input type="text" id="massage"></span>
<br>
<span>Code:<input type="text" id="code"></span>
<br>
<span>Encrypted/Decrypted:<input type="text" id="result" readonly></span>
<br>
<input type="button" value="Encrypt" onclick="startEncryption(1)">
<input type="button" value="Decrypt" onclick="startEncryption(2)">
</div>
</body>
import eel
eel.init('C:\Users\Fantomas\Documents\Programming\cipher\web')
eel.start('main.html')
@eel.expose
def startEncryption(mode : int, message : string, code : string):
if mode == 1:
ciphertext = encryptMessage(code, message)
elif mode == 2:
ciphertext = decryptMessage(code, message)
return ciphertext;
我的目录中有 eel.js 文件
将您的修改为:
import eel
eel.init('C:\Users\Fantomas\Documents\Programming\cipher\web')
@eel.expose
def startEncryption(mode : int, message : string, code : string):
if mode == 1:
ciphertext = encryptMessage(code, message)
elif mode == 2:
ciphertext = decryptMessage(code, message)
return ciphertext;
eel.start('main.html')
公开所有共享函数后放eel.start('main.html')
期待您的评论。
祝你好运
显然,不将 eel.start 放在代码末尾通常会导致问题,但 eel.init 的位置与这个问题无关。
有时我只是想告诉你,问题不在于你的 py 代码本身,而在于你将 eel 导入到你的 html 代码中的部分,请记住,eel.js总是在您的 eel.init 文件夹被指定为的任何地方生成,因此在您的 html 代码中导入您的 eel.js 时,请确保它位于该特定文件夹中
例如,如果您在 py 代码中指定了文件夹 web:
PYTHON:
eel.init('web')
那么在html导入鳗鱼的时候,一定是下面这样
<script src="./eel.js"></script>
注意:这里,.html文件也在web文件夹中,所以eel.js是从同一目录导入的。
所以是的,这经常发生(至少对我来说)确保你在 html 代码中导入 eel.js 时没有出错。
这是我第一次尝试鳗鱼。我有一个带有某些功能的 python 脚本,我正在尝试使用 @eel.expose
与它们通信,但它给了我一个 javascript 错误 - main.html:10 Uncaught TypeError: eel.startEncryption is not a function
这是我的代码:
<head>
<title>Undefined</title>
<link rel="stylesheet" href="w3pro.css">
<script type="text/javascript" src="/eel.js"></script>
<script>
function startEncryption(mode){
massage = document.getElementById("massage").value;
code = document.getElementById("code").value;
string = eel.startEncryption(mode, massage, code);
document.getElementById("result").innerHTML += string;
}
</script>
</head>
<body>
<header class="w3-panel">
<h1>Vigenere Encryption</h1>
</header>
<div class="w3-panel">
<span>Message:<input type="text" id="massage"></span>
<br>
<span>Code:<input type="text" id="code"></span>
<br>
<span>Encrypted/Decrypted:<input type="text" id="result" readonly></span>
<br>
<input type="button" value="Encrypt" onclick="startEncryption(1)">
<input type="button" value="Decrypt" onclick="startEncryption(2)">
</div>
</body>
import eel
eel.init('C:\Users\Fantomas\Documents\Programming\cipher\web')
eel.start('main.html')
@eel.expose
def startEncryption(mode : int, message : string, code : string):
if mode == 1:
ciphertext = encryptMessage(code, message)
elif mode == 2:
ciphertext = decryptMessage(code, message)
return ciphertext;
我的目录中有 eel.js 文件
将您的修改为:
import eel
eel.init('C:\Users\Fantomas\Documents\Programming\cipher\web')
@eel.expose
def startEncryption(mode : int, message : string, code : string):
if mode == 1:
ciphertext = encryptMessage(code, message)
elif mode == 2:
ciphertext = decryptMessage(code, message)
return ciphertext;
eel.start('main.html')
公开所有共享函数后放eel.start('main.html')
期待您的评论。
祝你好运
显然,不将 eel.start 放在代码末尾通常会导致问题,但 eel.init 的位置与这个问题无关。
有时我只是想告诉你,问题不在于你的 py 代码本身,而在于你将 eel 导入到你的 html 代码中的部分,请记住,eel.js总是在您的 eel.init 文件夹被指定为的任何地方生成,因此在您的 html 代码中导入您的 eel.js 时,请确保它位于该特定文件夹中
例如,如果您在 py 代码中指定了文件夹 web:
PYTHON:
eel.init('web')
那么在html导入鳗鱼的时候,一定是下面这样
<script src="./eel.js"></script>
注意:这里,.html文件也在web文件夹中,所以eel.js是从同一目录导入的。
所以是的,这经常发生(至少对我来说)确保你在 html 代码中导入 eel.js 时没有出错。