Javascript RSS 功能 JSON 显示未获得正确的个人资料图片
Javascript function for RSS JSON Display not getting the right profile picture
我想使用此 javascript 功能获取此站点 (https://medium.com/@femalefounderssg) 的每个 post 的个人资料照片,但我没有得到正确的照片。请指导我更改我的代码以获得合适的照片。谢谢你。这是代码。
$(function () {
var $content = $('#jsonContent');
var data = {
rss_url: 'https://medium.com/feed/@femalefounderssg'
};
$.get('https://api.rss2json.com/v1/api.json', data, function (response) {
if (response.status == 'ok') {
var output = '';
$.each(response.items, function (k, item) {
var visibleSm;
if(k < 3){
visibleSm = '';
} else {
visibleSm = ' visible-sm';
}
output += '<div class="col-sm-6 col-md-4' + visibleSm + '">';
output += '<div class="blog-post"><header>';
output += '<h4 class="date">' + $.format.date(item.pubDate, "dd<br>MMM") + "</h4>";
var tagIndex = item.description.indexOf('<img'); // Find where the img tag starts
var srcIndex = item.description.substring(tagIndex).indexOf('src=') + tagIndex; // Find where the src attribute starts
var srcStart = srcIndex + 5; // Find where the actual image URL starts; 5 for the length of 'src="'
var srcEnd = item.description.substring(srcStart).indexOf('"') + srcStart; // Find where the URL ends
var src = item.description.substring(srcStart, srcEnd); // Extract just the URL
output += '<div class="blog-element"><img class="img-responsive" src="' + src + '" width="360px" height="240px"></div></header>';
output += '<div class="blog-content"><h4><a href="'+ item.link + '">' + item.title + '</a></h4>';
output += '<div class="post-meta"><span>By ' + item.author + '</span></div>';
var yourString = item.description.replace(/<img[^>]*>/g,""); //replace with your string.
var maxLength = 120 // maximum number of characters to extract
//trim the string to the maximum length
var trimmedString = yourString.substr(0, maxLength);
//re-trim if we are in the middle of a word
trimmedString = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(" ")))
output += '<p>' + trimmedString + '...</p>';
output += '</div></div></div>';
return k < 3;
});
$content.html(output);
}
});
});
当前配置文件输出:
所需的配置文件输出:
您获取的图片有误,因为搜索 <img
索引时得到的第一个结果是作者的图片。
您需要跳过第一个结果并获取第二个结果:
Finding second occurrence of a substring in a string in Java[是Java,但概念依然存在]
var tagIndex = item.description.indexOf('<img', item.description.indexOf('<img') + 1);
String#indexOf
支持第二个参数 "fromIndex"。
通过向第一个结果的索引添加 1,我们确保第一个 <img
不会匹配,而第二个 <img
会匹配。
简化的 JSFiddle:https://jsfiddle.net/yuriy636/03n1hffh/
我想使用此 javascript 功能获取此站点 (https://medium.com/@femalefounderssg) 的每个 post 的个人资料照片,但我没有得到正确的照片。请指导我更改我的代码以获得合适的照片。谢谢你。这是代码。
$(function () {
var $content = $('#jsonContent');
var data = {
rss_url: 'https://medium.com/feed/@femalefounderssg'
};
$.get('https://api.rss2json.com/v1/api.json', data, function (response) {
if (response.status == 'ok') {
var output = '';
$.each(response.items, function (k, item) {
var visibleSm;
if(k < 3){
visibleSm = '';
} else {
visibleSm = ' visible-sm';
}
output += '<div class="col-sm-6 col-md-4' + visibleSm + '">';
output += '<div class="blog-post"><header>';
output += '<h4 class="date">' + $.format.date(item.pubDate, "dd<br>MMM") + "</h4>";
var tagIndex = item.description.indexOf('<img'); // Find where the img tag starts
var srcIndex = item.description.substring(tagIndex).indexOf('src=') + tagIndex; // Find where the src attribute starts
var srcStart = srcIndex + 5; // Find where the actual image URL starts; 5 for the length of 'src="'
var srcEnd = item.description.substring(srcStart).indexOf('"') + srcStart; // Find where the URL ends
var src = item.description.substring(srcStart, srcEnd); // Extract just the URL
output += '<div class="blog-element"><img class="img-responsive" src="' + src + '" width="360px" height="240px"></div></header>';
output += '<div class="blog-content"><h4><a href="'+ item.link + '">' + item.title + '</a></h4>';
output += '<div class="post-meta"><span>By ' + item.author + '</span></div>';
var yourString = item.description.replace(/<img[^>]*>/g,""); //replace with your string.
var maxLength = 120 // maximum number of characters to extract
//trim the string to the maximum length
var trimmedString = yourString.substr(0, maxLength);
//re-trim if we are in the middle of a word
trimmedString = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(" ")))
output += '<p>' + trimmedString + '...</p>';
output += '</div></div></div>';
return k < 3;
});
$content.html(output);
}
});
});
当前配置文件输出:
所需的配置文件输出:
您获取的图片有误,因为搜索 <img
索引时得到的第一个结果是作者的图片。
您需要跳过第一个结果并获取第二个结果:
Finding second occurrence of a substring in a string in Java[是Java,但概念依然存在]
var tagIndex = item.description.indexOf('<img', item.description.indexOf('<img') + 1);
String#indexOf
支持第二个参数 "fromIndex"。
通过向第一个结果的索引添加 1,我们确保第一个 <img
不会匹配,而第二个 <img
会匹配。
简化的 JSFiddle:https://jsfiddle.net/yuriy636/03n1hffh/