MediaWiki-diskusjon:Gadget-contributions-summary.js

Siste kommentar: for 8 år siden av Jeblad i emnet Rapportert feil

Rapportert feil rediger

Det rapporteres en feil for denne funksjonen

 TypeError: obj[names[x]] is undefined
 https://no.wikipedia.org/w/load.php?debug=true&lang=nb&modules=ext.gadget.contributions-summary&only=scripts&skin=vector&version=fefd83cfcecc
 Line 22

Feilen består i bruk av for-in på en array, som var gyldig tidligere. For-in skal kun brukes på props fra et objekt.

Funksjonen brukte tidligere try-catch for å unngå at feil propagerte, men disse er fjernet. Tror ikke det skal spille noen rolle her, få andre funksjoner vil bli påvirket.

Merk at forslaget til korrigert kode ikke er testet. — Jeblad 24. feb. 2016 kl. 10:59 (CET)Svar

Forslag til korrigert funksjon
function contributionsSummary() {
	var obj = {};
	$("#bodyContent > ul").first().find("li > a[href*='/wiki/']").each(function(i, el) {
		if (!obj[el.innerHTML])
			obj[el.title] = { count : 0, href : el.href.substr(wgServer.length), content : el.innerHTML };
		obj[el.title].count++;
	});
	var names = Array();
	for (var x in obj) names.push(x);
	names.sort(function(a, b){
		if (/:/.test(a) == /:/.test(b)) return a.localeCompare(b);
		else if (!/:/.test(a) && /:/.test(b)) return -1;
		else if (/:/.test(a) && !/:/.test(b)) return 1;
	});
	var html = Array();
	for (var i=0,l=names.length; i<l; i++)
		html.push(
			'<span><a'
			+ ' href="' + obj[names[i]].href.substr(wgServer.length) + '"'
			+ ' title="' + names[i] + '"'
			+ '>' + obj[names[i]].content + '</a>'
			+ ' (' + obj[names[i]].count + ')</span>');
	$("#bodyContent").append('<div class="contributions-summary"><a href="/wiki/Wikipedia:Contributions">Sammendrag</a>: ' + html.join(', ') + '</div>');
	
}
if (!mw.config.get('wgIsArticle') && mw.config.get('wgNamespaceNumber')==-1 && mw.config.get('wgCanonicalSpecialPageName')=="Contributions") {
	$(contributionsSummary);
}
  Stigmj (diskusjon) 24. feb. 2016 kl. 12:39 (CET)Svar
Må nok oppdateres en gang til, ser ut som om initialisering av indeksen til 0 falt ut. Min feil, jeg har endret forslaget. — Jeblad 24. feb. 2016 kl. 13:01 (CET)Svar
Tilbake til siden «Gadget-contributions-summary.js».