aurum-nigrum: Script arbeitet nicht, wenn nmit Script-Compiler in XPI gewandel

Beitrag lesen

Hallo Ihr,

habe nun mein Script fertig.
Es läuft im Greasemonkey und baut die alten wie auch die neuen Artikelseiten des grossen Web-Auktionshauses um (im oberen Abschnitt ein paar neue Links).

Nur... wenn ich das Script mit dem Script-Compiler von http://arantius.com/misc/greasemonkey/script-compiler in eine XPI-Erweiterung umwandeln lasse, funktioniert der Einbau der neuen Links in der neuen Artikelansicht des Online-Auktionshauses nicht mehr. Irgendwas muss da schief laufen.
Kann trotz stundenlangem Suchen keinen Fehler erkennen. Na ja, programmiere auch erst seit drei Tagen mit Javascript ;-)

Das zweite meiner Probleme mit Javascript und Greasemonkesy ist, dass ich leider keine Möglichkeit gefunden habe, bei Fehlern im Script die ensprechende fehlerverursachende Stelle angezeigt oder zumindest genannt zu bekommen. Gibt es hierfür eine Möglichkeit?
Es scheint mir doch recht umständlich, bei z.B. fehlenden Klammern oder Anführungszeichen das ganze Script Zeichen für Zeichen durchsuchen zu müssen.

Und noch eine Frage: Kann man mit Greasemonkey auch in einem Script mehrere Funktionen erstellen? Also, wenn ich z.B. sowas wie ein "GoSub" in einem Script ausführen möchte. Wie teile ich dann GM mit, welche Funktion beim OnLoad ausgeführt werden muss?

So, hier also der Ausschnitt des Scripts, der compiliert nicht funktionieren will. Es wäre sehr nett, wenn es sich jemand ansehen könnte.
Mir wurde schon das letzte Mal in diesem Forum fachlich sehr schnell und kompetent geholfen. Besten Dank nochmal dafür!

  
// ==UserScript==  
// @name           EBay Item Report  
// @namespace  
// @description    works with old and new eBay-Item-pages - Replace the upper links "Show tutorial" and "Send us your comments" with copyable sellername, a shorter eBay item-link, a item-link included sellername for copying into forum-postings, two links to notify eBay about illegal eBay items, a link to observe the seller with GoofBay and a link to wortfilter.de  
// @include        http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&Item=*  
// ==/UserScript==  
  
(function()  
{  
	var adr = document.URL  
	var land1 = adr.search(/ebay.de/)  
	var artnr = ""  
	var seller = ""  
	var npos = ""  
	  
       	site = "de"  
  
        var nam1 = "Kopieren"  
        var nam2 = "Betrug"  
        var nam3 = "Auswahl"  
        var nam4 = "Artikelnummer: "  
  
		// Verkäufer  
		var tds = document.evaluate('//div[@class=\'mbg\']', document, null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);  
		td = tds.snapshotItem(0)  
		if (td){  
			if (  
				 td.childNodes &&  
				(td.childNodes.length > 0) &&  
				(td.childNodes.item(0).nodeType == 1)  
			) {  
				seller = (td.childNodes.item(0).text)  
			}  
		}  
  
		// ArtikelNummer  
  
		var tds = document.evaluate('//td[@class=\'infolabel_txt\']', document, null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);  
		if (td){  
			td = tds.snapshotItem(0).parentNode.childNodes[1]  
			if (  
				 td.childNodes &&  
				(td.childNodes.length > 0) &&  
				(td.childNodes.item(0).nodeType == 3)  
			) {  
				var top = td.childNodes.item(0);  
				var initData = top.data;  
				artnr = (td.childNodes.item(0).data)  
			}  
		}  
  
		// Links entfernen  
  
		var tds = document.evaluate('//div[@class=\'optin_links\']', document, null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);  
	        if (tds)  
	        {  
			td = (tds.snapshotItem(0));  
	        	if (td)  
        		{  
				for (var i = 0; i < 5; i++)  
				{  
					if (td.firstChild)  
					{  
			 			var weg = td.removeChild(td.firstChild)  
						npos = td  
			 		}  
			 	}  
			}  
		}  
  
		// Schreiben der neuen Einträge  
  
		if (npos) {  
			var newLink1 = document.createElement("div");  
			var newLink1 = document.createElement("a");  
			var newLink2 = document.createElement("a");  
			var newLink3 = document.createElement("a");  
			var newLink4 = document.createElement("a");  
			var newLink5 = document.createElement("a");  
			var newLink6 = document.createElement("a");  
	  
			newLink1.setAttribute("href", "http://pages.ebay." + site + "/ws/eBayISAPI.dll?ViewItem&item=" + artnr);  
			newLink2.setAttribute("href", "http://pages.ebay." + site + "/ws/eBayISAPI.dll?ViewItem&item=" + artnr + "-(" + seller + ")");  
                        newLink3.setAttribute("href", "http://contact.ebay." + site + "/ws/eBayISAPI.dll?ContactUs&wftype=213a7651ffe03d58&rcode=7970ffd7a1b316c46257c054a83061ac&item=" + artnr + "&mfcisapicommand=ContactUs&subject=ea565ee091505e591a9e3084444d9d4ddcd74ee123d8d5a5da72fa1ed63905ff8a4f58da7e419c0d7dafc750eab2d3ef2711245659e4bd2a5102918dcdc1536010c8b9e6a791a3f316a5a592a9587b47&bcrumb=5ca02a8cc18b0062bc265d9690e2f7086173c243135a7bf2d6b0cf9c2445a35d9d27a8240a3312759bdf6e56845b2d2bc3df61aa0572fe01bf0c61cb16d05ef880f8af47598d790e74be33eb25197c00f02c8eeae78c4b87692ff1fa9124f7990619a56284b34599020761dad5a5a8da62d6db76098fcbc39ed432f4dc8a2d20a1694b8b70a6475af440ecf533b55e72e5318a9954ca24884600ac3416fb7663");  
                        newLink4.setAttribute("href", "http://contact.ebay." + site + "/ws/eBayISAPI.dll?ReportItemMember&items=" + artnr + "&seller=" + seller + "&active=1&state=1");  
	  
			newLink5.setAttribute("href", "http://www.goofbay.com/ebay_seller_history_tool.html?gsl_username=" + seller + "&gsl_days=90&gsl_include=both&gsl_show_fees=on&gsl_show_buyers=on&gsl_submit=&gsl_submit.x=31&gsl_submit.y=12");  
			newLink6.setAttribute("href", "http://www.wortfilter.de/Tools/uebersicht/uebersicht.php")  
  
			var char1 = document.createTextNode(seller + " - " + nam4);  
			var char2 = document.createTextNode(" | ");  
			var char3 = document.createTextNode(" | ");  
			var char4 = document.createTextNode(" | ");  
			var char5 = document.createTextNode(" | ");  
			var char6 = document.createTextNode(" | ");  
		  
			var linkText1 = document.createTextNode(artnr);  
			var linkText2 = document.createTextNode(nam1);  
			var linkText3 = document.createTextNode(nam2);  
			var linkText4 = document.createTextNode(nam3);  
			var linkText5 = document.createTextNode("GoofBay");  
			var linkText6 = document.createTextNode("Wortfilter");  
		  
			newLink1.appendChild(linkText1);  
			newLink2.appendChild(linkText2);  
			newLink3.appendChild(linkText3);  
			newLink4.appendChild(linkText4);  
			newLink5.appendChild(linkText5);  
			newLink6.appendChild(linkText6);  
			  
			npos.appendChild(char1);  
			npos.appendChild(newLink1);  
			npos.appendChild(char2);  
			npos.appendChild(newLink2);  
			npos.appendChild(char3);  
			npos.appendChild(newLink3);  
			npos.appendChild(char4);  
			npos.appendChild(newLink4);  
			npos.appendChild(char5);  
			npos.appendChild(newLink5);  
			npos.appendChild(char6);  
			npos.appendChild(newLink6);  
		}  
		return;  
})  
();  
  

Bin für jeden Tip dankbar.
Wollte das Script baldmöglichst online zur Verfügung stellen.
Gehöre zur Gattung der Betrügerjäger ;-)

Beste Grüsse