【发布时间】:2021-06-03 23:43:26
【问题描述】:
您好,我在 javascript 中获取数据时遇到问题。我想获取 api,但每次我想这样做时,都会出错。首先,我想获取 html 模板,这工作正常,但是当我想使用该文件中的 JS 脚本时,它显示“未定义函数”我尝试了很多方法来做到这一点。下面是不起作用的代码
var dataset;
fetch('../templates/mainPage.html')
.then(response => response.text())
.then(data => {
dataset = data;
document.getElementById('mainContent').innerHTML = dataset;
//var script = document.createElement('script');
//script.src = '../js/mainTmpl.js';
//document.body.appendChild(script);
//document.body.innerHTML += '<script defer src="../js/mainTmpl.js"></script>';
//script.addEventListener('load', logDataset);
logDataset();
});
以下是我想要使用的模板(HTML 模板和 JS 脚本已添加到主 HTML 中,但显示“未定义 logDataset”
<div class="content">
<div class="main-container">
<span class="main-text" id="main-text">{{TEST}}</span>
<div class="blue-line"></div>
<span class="sub-text" id='sub-text'></span>
</div>
</div>
<script>
window.logDataset = function () {
var thathref = window.location.pathname;
document.getElementById('mainContent').innerHTML = dataset;
var mainText = document.getElementById('main-text');
var subtext = document.getElementById('sub-text');
console.log('test');
fetch('http://localhost:8080/'+thathref).then(
function(u){ return u.json(); }
).then(function(data){
var data1 = JSON.parse(JSON.stringify(data));
mainText.innerHTML = data1[0].text;
subtext.innerHTML = data1[1].text;
console.log(data1[0].text);
}
);
}
我评论了我尝试过的不同方法,但它仍然很糟糕(我必须在其他文件中有 JS 脚本)
错误屏幕下方Error
【问题讨论】:
-
读取错误,表示未定义变量。
-
是的,我知道,但它是在第二个文件中定义的,我将第二个文件分配给第一个文件
-
它们会按顺序执行。没有吊装。如果一个文件依赖于另一个文件,则必须将其放在需要的文件之后
-
好的,你能给我举个例子吗?我真的很在乎这个。我是否必须在第二个文件中添加更多内容?检查它是否已加载或什么?
-
不要在您的(声明)文件中调用任何函数,创建最后一个文件,您将在其中调用已声明的函数
标签: javascript html dom promise fetch