在页面上列出博主 post,图片和风格化为 css
Listing blogger post on a page, with image and stylize with css
下面的代码用于在标签名称中列出博主 post
但它只列出了 post 的标题,我想知道是否可以将 post 图像一起显示,并使用 css 进行样式化,我该怎么做?
在 /feeds/posts/summary/-/NAME?alt=json&callback=processPostList12&start-index="
中,您可以更改标签名称,并且只会显示与标签名称关联的 post。
我更改了代码以创建 class 并将图像的位置更改为行的开头,但现在它不再按字母顺序排列,我尝试了所有我知道的并且无法修复它。
图像是否也可能指向post?正如标题
这是我更改的部分:
a1E.href = url;
a1E.textContent = title;
a1E.className += "aclass";
postImage.src = imageThumb;
postImage.className += "imclass";
var startIndex = 1;
var maxResults = 150;
var allResults = [];
function sendQuery12()
{
var scpt = document.createElement("script");
scpt.src = "/feeds/posts/summary/-/Series?alt=json&callback=processPostList13&start-index=" + startIndex + "&max-results=" + maxResults;
document.body.appendChild(scpt);
}
function printArrayResults(root)
{
//Sort Alphebetically
allResults.sort(function(a, b){
var a_string = a.children[0].textContent ;
var b_string = b.children[0].textContent ;
if(a_string < b_string) return -1;
if(a_string > b_string) return 1;
return 0;
})
var elmt = document.getElementById("postList13");
for (index = 0; index < allResults.length; index++) {
elmt.appendChild(allResults[index]);
}
}
function processPostList13(root)
{
var elmt = document.getElementById("postList13");
if (!elmt)
return;
var feed = root.feed;
if (feed.entry.length > 0)
{
for (var i = 0; i < feed.entry.length; i++)
{
var entry = feed.entry[i];
var title = entry.title.$t;
var date = entry.published.$t;
if( entry.media$thumbnail != undefined ){
var imageThumb = entry.media$thumbnail.url ;
} else {
var imageThumb = 'https://i.imgur.com/PqPqZQN.jpg' ;
}
for (var j = 0; j < entry.link.length; j++)
{
if (entry.link[j].rel == "alternate")
{
var url = entry.link[j].href;
if (url && url.length > 0 && title && title.length > 0)
{
var liE = document.createElement("li");
var a1E = document.createElement("a");
var postImage = document.createElement("img");
a1E.href = url;
a1E.textContent = title;
a1E.className += "aclass";
postImage.src = imageThumb;
postImage.className += "imclass";
liE.appendChild(postImage);
liE.appendChild(a1E);
//elmt.appendChild(liE);
allResults.push(liE);
}
break;
}
}
}
if (feed.entry.length >= maxResults)
{
startIndex += maxResults;
sendQuery12();
} else {
printArrayResults();
}
}
}
sendQuery12();
<div class="postlist1" id="postList13">
</div>
1- 从 APi
中检索 post 图像
在这些行之后:
var entry = feed.entry[i];
var title = entry.title.$t;
var date = entry.published.$t;
你可以使用:
var imageThumb = entry.media$thumbnail.url;
它将检索 post 的第一个图像缩略图。你应该验证它,因为没有图像的 posts 将 return undefined
for media$thumbnail
并会导致 javascript 错误。所以 :
if( entry.media$thumbnail != undefined ){
var imageThumb = entry.media$thumbnail.url;
} else {
var imageThumb = 'alternative_image_path' ;
}
2- 附加 post 图片:
...
var postImage= document.createElement("img");
postImage.src = imageThumb;
liE.appendChild(postImage);
...
最终代码应该是这样的:
<div>
<ul id="postList12"></ul>
</div>
<script type="text/javascript">
var startIndex = 1;
var maxResults = 150;
var allResults = [];
function sendQuery12()
{
var scpt = document.createElement("script");
scpt.src = "/feeds/posts/summary/-/NAME?alt=json&callback=processPostList12&start-index=" + startIndex + "&max-results=" + maxResults;
document.body.appendChild(scpt);
}
function printArrayResults(root)
{
//Sort Alphebetically
allResults.sort(function(a, b){
var a_string = a.children[0].textContent ;
var b_string = b.children[0].textContent ;
if(a_string < b_string) return -1;
if(a_string > b_string) return 1;
return 0;
})
var elmt = document.getElementById("postList12");
for (index = 0; index < allResults.length; index++) {
elmt.appendChild(allResults[index]);
}
}
function processPostList12(root)
{
var elmt = document.getElementById("postList12");
if (!elmt)
return;
var feed = root.feed;
if (feed.entry.length > 0)
{
for (var i = 0; i < feed.entry.length; i++)
{
var entry = feed.entry[i];
var title = entry.title.$t;
var date = entry.published.$t;
if( entry.media$thumbnail != undefined ){
var imageThumb = entry.media$thumbnail.url ;
} else {
var imageThumb = 'https://i.imgur.com/PqPqZQN.jpg' ;
}
for (var j = 0; j < entry.link.length; j++)
{
if (entry.link[j].rel == "alternate")
{
var url = entry.link[j].href;
if (url && url.length > 0 && title && title.length > 0)
{
var liE = document.createElement("li");
var a1E = document.createElement("a");
var postImage = document.createElement("img");
a1E.href = url;
a1E.textContent = title;
postImage.src = imageThumb;
liE.appendChild(a1E);
liE.appendChild(postImage);
//elmt.appendChild(liE);
allResults.push(liE);
}
break;
}
}
}
if (feed.entry.length >= maxResults)
{
startIndex += maxResults;
sendQuery12();
} else {
printArrayResults();
}
}
}
sendQuery12();
</script>
下面的代码用于在标签名称中列出博主 post
但它只列出了 post 的标题,我想知道是否可以将 post 图像一起显示,并使用 css 进行样式化,我该怎么做?
在 /feeds/posts/summary/-/NAME?alt=json&callback=processPostList12&start-index="
中,您可以更改标签名称,并且只会显示与标签名称关联的 post。
我更改了代码以创建 class 并将图像的位置更改为行的开头,但现在它不再按字母顺序排列,我尝试了所有我知道的并且无法修复它。
图像是否也可能指向post?正如标题
这是我更改的部分:
a1E.href = url;
a1E.textContent = title;
a1E.className += "aclass";
postImage.src = imageThumb;
postImage.className += "imclass";
var startIndex = 1;
var maxResults = 150;
var allResults = [];
function sendQuery12()
{
var scpt = document.createElement("script");
scpt.src = "/feeds/posts/summary/-/Series?alt=json&callback=processPostList13&start-index=" + startIndex + "&max-results=" + maxResults;
document.body.appendChild(scpt);
}
function printArrayResults(root)
{
//Sort Alphebetically
allResults.sort(function(a, b){
var a_string = a.children[0].textContent ;
var b_string = b.children[0].textContent ;
if(a_string < b_string) return -1;
if(a_string > b_string) return 1;
return 0;
})
var elmt = document.getElementById("postList13");
for (index = 0; index < allResults.length; index++) {
elmt.appendChild(allResults[index]);
}
}
function processPostList13(root)
{
var elmt = document.getElementById("postList13");
if (!elmt)
return;
var feed = root.feed;
if (feed.entry.length > 0)
{
for (var i = 0; i < feed.entry.length; i++)
{
var entry = feed.entry[i];
var title = entry.title.$t;
var date = entry.published.$t;
if( entry.media$thumbnail != undefined ){
var imageThumb = entry.media$thumbnail.url ;
} else {
var imageThumb = 'https://i.imgur.com/PqPqZQN.jpg' ;
}
for (var j = 0; j < entry.link.length; j++)
{
if (entry.link[j].rel == "alternate")
{
var url = entry.link[j].href;
if (url && url.length > 0 && title && title.length > 0)
{
var liE = document.createElement("li");
var a1E = document.createElement("a");
var postImage = document.createElement("img");
a1E.href = url;
a1E.textContent = title;
a1E.className += "aclass";
postImage.src = imageThumb;
postImage.className += "imclass";
liE.appendChild(postImage);
liE.appendChild(a1E);
//elmt.appendChild(liE);
allResults.push(liE);
}
break;
}
}
}
if (feed.entry.length >= maxResults)
{
startIndex += maxResults;
sendQuery12();
} else {
printArrayResults();
}
}
}
sendQuery12();
<div class="postlist1" id="postList13">
</div>
1- 从 APi
中检索 post 图像在这些行之后:
var entry = feed.entry[i];
var title = entry.title.$t;
var date = entry.published.$t;
你可以使用:
var imageThumb = entry.media$thumbnail.url;
它将检索 post 的第一个图像缩略图。你应该验证它,因为没有图像的 posts 将 return undefined
for media$thumbnail
并会导致 javascript 错误。所以 :
if( entry.media$thumbnail != undefined ){
var imageThumb = entry.media$thumbnail.url;
} else {
var imageThumb = 'alternative_image_path' ;
}
2- 附加 post 图片:
...
var postImage= document.createElement("img");
postImage.src = imageThumb;
liE.appendChild(postImage);
...
最终代码应该是这样的:
<div>
<ul id="postList12"></ul>
</div>
<script type="text/javascript">
var startIndex = 1;
var maxResults = 150;
var allResults = [];
function sendQuery12()
{
var scpt = document.createElement("script");
scpt.src = "/feeds/posts/summary/-/NAME?alt=json&callback=processPostList12&start-index=" + startIndex + "&max-results=" + maxResults;
document.body.appendChild(scpt);
}
function printArrayResults(root)
{
//Sort Alphebetically
allResults.sort(function(a, b){
var a_string = a.children[0].textContent ;
var b_string = b.children[0].textContent ;
if(a_string < b_string) return -1;
if(a_string > b_string) return 1;
return 0;
})
var elmt = document.getElementById("postList12");
for (index = 0; index < allResults.length; index++) {
elmt.appendChild(allResults[index]);
}
}
function processPostList12(root)
{
var elmt = document.getElementById("postList12");
if (!elmt)
return;
var feed = root.feed;
if (feed.entry.length > 0)
{
for (var i = 0; i < feed.entry.length; i++)
{
var entry = feed.entry[i];
var title = entry.title.$t;
var date = entry.published.$t;
if( entry.media$thumbnail != undefined ){
var imageThumb = entry.media$thumbnail.url ;
} else {
var imageThumb = 'https://i.imgur.com/PqPqZQN.jpg' ;
}
for (var j = 0; j < entry.link.length; j++)
{
if (entry.link[j].rel == "alternate")
{
var url = entry.link[j].href;
if (url && url.length > 0 && title && title.length > 0)
{
var liE = document.createElement("li");
var a1E = document.createElement("a");
var postImage = document.createElement("img");
a1E.href = url;
a1E.textContent = title;
postImage.src = imageThumb;
liE.appendChild(a1E);
liE.appendChild(postImage);
//elmt.appendChild(liE);
allResults.push(liE);
}
break;
}
}
}
if (feed.entry.length >= maxResults)
{
startIndex += maxResults;
sendQuery12();
} else {
printArrayResults();
}
}
}
sendQuery12();
</script>