Kann Fehler in JavaScript-Funktion nicht nachvollziehen.
Verfasst: 29.04.2008, 08:09
Folgende Funktion ist ein Beispiel von Google. Das funktioniert natürlich auch einwandfrei.
Jetzt mein Problem: wenn ich eine bestimmte Kleinigkeit ändere, wird die Funktion nur noch bis zu folgender Position richtig duchgearbeitet, das Wichtige fehlt also.
Meine Änderung betrifft nur einen einzigen Buchstaben (Großschreibung in Kleinschreibung geändert):
geändert zu
Woran liegt das? Ich kann den Fehler einfach nicht nachvollziehen.
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"
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"