-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpost.js
More file actions
69 lines (57 loc) · 2.47 KB
/
Copy pathpost.js
File metadata and controls
69 lines (57 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
window.addEventListener("DOMContentLoaded", () => {
// получаем элементы со страницы
const post = document.querySelector("#post"),
comments = document.querySelector("#comments"),
btn = document.querySelector(".btn");
// сщздаем блок с информацией на странице
function createElements(header, body) {
const post = document.createElement("div"),
title = document.createElement("h1"),
text = document.createElement("p");
title.textContent = header;
text.textContent = body;
post.append(title);
post.append(text);
return post;
}
// формируем блок с комментариями
function createComments(author, commentText) {
const comment = document.createElement("div"),
title = document.createElement("h3"),
text = document.createElement("p");
title.textContent = author;
text.textContent = commentText;
comment.append(title);
comment.append(text);
return comment;
}
//создаем страницу с получением ответов от сервера
async function createPageComments() {
// получаем часть адреса URL после символа ?
const partOfURL = new URLSearchParams(window.location.search);
// формируем запрос на получение поста и комментариев id - номер поста и комментария
const responsePost = await fetch(
`https://gorest.co.in/public-api/posts/${partOfURL.get("id")}`
),
responseComment = await fetch(
`https://gorest.co.in/public-api/comments?post_id=${partOfURL.get(
"id"
)}`
),
//получаем ответы от сервера
dataPost = await responsePost.json(),
dataComment = await responseComment.json();
// формируем логику для кнопки назад, сщздаем у нее атрибут href для возрата к странице
if (partOfURL.get("page") == 1) {
btn.setAttribute("href", "./index.html");
} else {
btn.setAttribute("href", `./index.html?page=${partOfURL.get("page")}`);
}
// создаем на странице элементы и комментарии
post.append(createElements(dataPost.data.title, dataPost.data.body));
dataComment.data.forEach((i) => {
comments.append(createComments(i.name, i.body));
});
}
createPageComments();
});