我目前正在某种“主页”上工作,一切都按计划进行。但是,在即时消息试图添加书签的时候,我将它们嵌入到html中,但是如果我想添加一个书签,就必须编辑html文件。
我有一个工作脚本,当我将JSON保存在同一JS文件中时,它将使用JSON并显示它们correctly 这是该代码
const bookmarksData = [
{
"name": "Echo",
"URL": "https://sevenvnta.echo-ntn.org"
},
{
"name": "Youtube",
"URL": "https://youtube.com"
},
{
"name": "Drive",
"URL": "https://drive.google.com"
},
{
"name": "Mail",
"URL": "https://mail.google.com"
},
{
"name": "Media",
"URL": "http://server3.unethicalimages.us:8096"
},
{
"name": "EMathInstructions",
"URL": "https://www.emathinstruction.com/"
}
];
function bookmarkTemplate(bookmarks) {
return `
<li><a href="${bookmarks.URL}">${bookmarks.name}</a></li>
`;
}
document.getElementById("app").innerHTML = `
${bookmarksData.map(bookmarkTemplate).join("")}
`;
所以我从js文件中删除了json并添加了
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', 'http://unethicalimages.us/Database/**ID**/bookmarks.json', true);
xobj.onreadystatechange = function () {
if (xobj.readyState == 4 && xobj.status == "200") {
callback(xobj.responseText);
}
};
xobj.send(null);
}
loadJSON(function(response) {
// Parse JSON string into object
var actual_JSON = JSON.parse(response);
});
The current state of it looks like this
function loadJSON(callback) {
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', 'http://unethicalimages.us/Database/**ID**/bookmarks.json', true);
xobj.onreadystatechange = function () {
if (xobj.readyState == 4 && xobj.status == "200") {
callback(xobj.responseText);
}
};
xobj.send(null);
}
loadJSON(function(response) {
// Parse JSON string into object
var actual_JSON = JSON.parse(response);
});
function bookmarkTemplate(bookmarks) {
return `
<li><a href="${bookmarks.URL}">${bookmarks.name}</a></li>
`;
}
document.getElementById("app").innerHTML = `
${bookmarksData.map(bookmarkTemplate).join("")}
`;
任何帮助将不胜感激!谢谢!
答案 0 :(得分:0)
好吧,数据到来时您什么也不做。您在这里收到json文件
loadJSON(function(response) {
// Parse JSON string into object
var actual_JSON = JSON.parse(response);
});
您正在将数据分配给变量,而对其不执行任何操作。例如,创建一个函数UpdateUI
并在数据到达时传递数据。
loadJSON(function(response) {
// Parse JSON string into object
var json = JSON.parse(response);
UpdateUI(json);
});
然后将其渲染
function UpdateUI(data) {
document.getElementById("app").innerHTML = `
${data.map(bookmarkTemplate).join("")}
`;
}