javascript - 如何添加指向 API 结果的链接
问题描述
我创建了一个画廊,它从 API (picsum.photos) 中随机提取图片在这里查看:https ://codepen.io/lucas-knm/pen/oVmmEV
问题是这两个链接不可点击。我需要用文本或图标更改它们,并将它们链接到新页面中的实际地址。
我尝试了这段显然行不通的代码:
这是完整的 Js 代码:
window.onload = init;
function init(){
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://picsum.photos/list", true);
xhr.send(null);
xhr.onload = function(){
if (xhr.status == 200) {
var picsum = JSON.parse(xhr.responseText)
console.log(picsum);
var imageString = "";
for(var x = 500; x <510; x++){
imageString += "<div class = imgContainer>" + "<p class = author>" +
picsum[x].author
+
"</p>"
+
"<img src= 'https://picsum.photos/200/300?image='>"
+
"<p class = authorUrl>"
+
picsum[x].author_url
+
"</p><p class = postUrl>"
+
picsum[x].post_url
+
"</p>"
+
"</div>"
}
document.getElementById("gallery").innerHTML = imageString;
gallery.setAttribute('style', 'font-size: 12px; text-align: left; display:absolute;');
}
}
}
解决方案
而不是以文本格式编写 URL,您必须<a>
创建标记并将 URL 设置为href
它们的属性:
window.onload = init;
function init(){
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://picsum.photos/list", true);
xhr.send(null);
xhr.onload = function(){
if (xhr.status == 200) {
var picsum = JSON.parse(xhr.responseText)
console.log(picsum);
var imageString = "";
for(var x = 500; x <510; x++){
imageString += "<div class = imgContainer>" + "<p class = author>" +
picsum[x].author
+
"</p>"
+
"<img src= 'https://picsum.photos/200/300?image='>"
+
"<p class = authorUrl>"
+
//This is what you need:
"<a href='" + picsum[x].author_url + "'>"+ picsum[x].author_url +"</a>";
+
"</p><p class = postUrl>"
+
"<a href='" + picsum[x].post_url + "'>"+ picsum[x].post_url +"</a>"
+
"</p>"
+
"</div>"
}
document.getElementById("gallery").innerHTML = imageString;
gallery.setAttribute('style', 'font-size: 12px; text-align: left; display:absolute;');
}
}
}
推荐阅读
- javascript - 如何在 ReactJS 脚本中通过 WebCrypto“importKey”导入 Base64 PublicKey?
- oracle - java.sql.SQLException:在 Spring Boot 应用程序中使用简单选择查询时出现无效的列索引异常
- javascript - Rails 5 在同一页面上两次使用 Kaminari 部分呈现整个页面
- c# - C# Out Discard,兼容 C#6
- postman - 测试和环境
- sql - Postgres 查询返回只有一位作者的书籍
- java - Java中的Java.lang.Integer类
- c - 为什么我不能将此数组传递和编辑给函数?
- rest - REST GET 的 HTTP 响应代码 - 未找到子资源(但未由标识符引用)
- nginx - 无法从外部访问 nginx