我开始学习 javascript,我决定尝试用模块做一个东西,我想从那时起循环并使用 for 循环执行函数!我知道这不是最好的方法...但我学得好吗?
document.addEventListener("DOMContentLoaded", function() {
//Pegamo o butão
const RunButton = document.getElementById("Run");
RunButton.addEventListener("click", () => {
// Fetch the JSON data
fetch('Codes.json')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
//Pegamos... o obvio né murilo!
const levelData = data[level];
//Blocks :)
const blocks = levelData.blocks;
// Loop pelo cade bloco e seu nome
for (let i = 0; i < levelData.BlocksIn; i++) {
//Block é o bloco atual!
const blockWord = blocks[i];
var Paramater = SectionDiv.querySelector("#Block_" + i);
// Pegamos o nome do bloco... e agora é so usar!
import('./blocks.js')
.then(module => {
//Pegamos do modulo
console.log("sex")
const FunctionOrClass = module.default[blockWord];
//Cria uma instacia ( pois é uma classe )
const Class = new FunctionOrClass()
//E executa uma função :)
Class[Paramater.value]()
alert(Paramater.value )
})
.catch(error => {
console.error('Error importing module:', error);
});
}
})
.catch(error => {
console.error('Error fetching JSON:', error);
});
});
});
我很努力,但还是走到了这一步,但最后没关系,有一件事我不知道为什么,我再努力也没关系
这是脚本的修订版本,并进行了一些改进:
document.addEventListener("DOMContentLoaded", function() {
const runButton = document.getElementById("Run");
runButton.addEventListener("click", () => {
fetch('Codes.json')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
const levelData = data[level]; // Ensure `level` is defined somewhere in your script
const blocks = levelData.blocks;
// It's better to import the module once, outside the loop
import('./blocks.js')
.then(module => {
for (let i = 0; i < levelData.BlocksIn; i++) {
const blockWord = blocks[i];
const parameter = document.querySelector("#Block_" + i);
const FunctionOrClass = module.default[blockWord];
if (FunctionOrClass) {
const instance = new FunctionOrClass();
if (instance[parameter.value] instanceof Function) {
instance[parameter.value](); // Execute the function
alert(parameter.value);
} else {
console.error('Method not found:', parameter.value);
}
} else {
console.error('Block not found:', blockWord);
}
}
})
.catch(error => {
console.error('Error importing module:', error);
});
})
.catch(error => {
console.error('Error fetching JSON:', error);
});
});
});