我正在使用JavaScript生成带有" getcustomeremail "按钮在每行的最后一列上。现在我想提取电子邮件值时,点击" getcustomeremail "按钮在同一行
我在Preload.js上声明了两个函数来提取电子邮件并将其发送到main.js进行进一步处理:
function getEmail (el) {
const tr = el.closest("tr");
const tds = tr.getElementsByClassName('email');
const emailAddress = tds[0].innerHTML;
console.log(emailAddress);
ipcRenderer.send("ClickRunCH", emailAddress);
}
window.addEventListener('DOMContentLoaded', () => {
function renderCustomers(tasks) {
customerList.innerHTML += `
<tr >
<th >Name</th>
<th >Email</th>
<th >Contacts</th>
<th >Address</th>
<th >Country</th>
<th >Action</th>
</tr>`;
tasks.forEach((t) => {
customerList.innerHTML += `
<tr class=" animated bounceInUp">
<td >${t.Name}</td>
<td >${t.Email}</td>
<td >${t.Contacts}</td>
<td >${t.Address}</td>
<td >${t.Country}</td>
<td ><button class="email" onclick="getEmail(this)">
Get Customer Email
</button></td>
</tr>`;
});
})
但是我得到这个错误信息:
ReferenceError: getEmail is not defined
at HTMLButtonElement.onclick
任何帮助都是非常感激的,谢谢阅读
函数不能从其他文件访问,除非从定义函数的文件导出&在使用它们的文件中导入。
你需要在preload.js中使用export关键字…
export function getEmail (el) {
const tr = el.closest("tr");
const tds = tr.getElementsByClassName('email');
const emailAddress = tds[0].innerHTML;
console.log(emailAddress);
ipcRenderer.send("ClickRunCH", emailAddress);
}
在main.js中(使用function的地方)你需要导入它
import {getEmail} from 'preload.js'
但是你需要提供preload.js &Main.js不在同一个目录下。
import {getEmail} from 'otherPath/preload.js'
将完全取决于文件之间的关系。