Code: Alles auswählen
function callbackTab(tabId, feedUrl) {
var showFeedDesc = prefs.getBool("showFeedDesc");
var summaries = prefs.getInt("summaries");
var entries = prefs.getInt("entries");
var renderHtml = prefs.getBool("renderHtml");
var showTimestamp = prefs.getBool("showTimestamp");
var container = _gel(tabId);
// Display loading message before fetching feed.
container.innerHTML = '<div class="statusLabel">Loading...</div>';
// Fetch feed and return it as a JSON object.
// Callback function is defined within local scope.
_IG_FetchFeedAsJSON(
feedUrl,
function(feed) {
if (typeof feed == "undefined" || typeof feed.Entry == "undefined") {
container.innerHTML = '<div class="statusLabel">Invalid feed URL:<br>' + feedUrl + '</div>';
} else {
// Fetch feed successful. Generate HTML content from returned JSON object.
// Create feed header containing title and description.
var html = new Array();
html.push('<div class="feedHeader">');
html.push('<div class="feedTitle">');
html.push((feed.Link != "") ? '<a target="_blank" href="' + _hesc(feed.Link) + '">' + _hesc(feed.Title) + '</a>' : _hesc(feed.Title));
html.push((feed.Author != "") ? '<span class="feedAuthor"> by ' + _hesc(feed.Author) + '</span>' : "");
html.push('</div>');
if (showFeedDesc) {
html.push('<div class="feedDesc">' + _hesc(feed.Description) + '</div>');
}
html.push('</div>');
// Iterate through each feed entry and generate list of content.
html.push('<ul class="feedList">');
for (var n = 0; n < feed.Entry.length; n++) {
var entry = feed.Entry[n];
html.push('<li>');
html.push('<a target="_blank" href="' + entry.Link + '"><b>' + _hesc(entry.Title) + '</b></a>');
if (typeof entry.Summary != "undefined" && entry.Summary != "") {
var summary = document.createElement("div");
summary.innerHTML = (summaries == 0) ? entry.Summary : entry.Summary.substr(0, summaries);
html.push('<div class="entrySummary">');
html.push((renderHtml ? summary.innerHTML : _hesc(summary.innerHTML)));
html.push('</div>');
}
if (!isNaN(entry.Date) && showTimestamp) {
html.push('<div class="entryTimestamp">[' + new Date(entry.Date * 1000).toLocaleString() + ']</div>');
}
html.push('</li>');
}
html.push('</ul>');
container.innerHTML = html.join("");
}
// Resize iframe height to fit content.
_IG_AdjustIFrameHeight();
},
entries,
(summaries > -1)
);
}
Code: Alles auswählen
// Display loading message before fetching feed.
container.innerHTML = '<div class="statusLabel">Loading...</div>';
Code: Alles auswählen
html.push((feed.Author != "") ? '<span class="feedAuthor"> by ' + _hesc(feed.Author) + '</span>' : "");
Code: Alles auswählen
html.push((feed.author != "") ? '<span class="feedAuthor"> by ' + _hesc(feed.author) + '</span>' : "");
btw: In der XML, aus der gelesen wird, ist alles klein geschrieben (also "author").
Vielen Dank im Voraus.
Benni
PS: hier der vollständige Code zum Selbertesten:
https://code.google.com/apis/gadgets/docs/gs.html
Beispiel: "Feed in Tabs"