JS und Greasemonkey

pochy

Mitglied
hallo,
ich versuche ein userscript für greasemonkey zu schreiben, aber es bleibt auch nur bei dem versuch. ich irgendwie nicht so richtig ahnung von javascript.

Code:
var navbar = document.getElementById('player');
if (navbar) {
	var count = document.getElementsByTagName("a");

	var links = new Array();
	for(var i=0; i<count.length; i++) {
		links[i] = document.getElementsByTagName("a")[i].href;//.previousSibling
	}
	var newlink = document.createElement('a');
	newlink.setAttribute('href', 'google.de/?Link='+links[3]);
	ahref.setAttribute('target', '_blank');
	newlink.appendChild ('!!NEUER LINK!!');

	navbar.parentNode.appendChild(newlink);
}

wie man vielleicht erkennen mag geht es mir darum einen link an einer anderen stelle verändert einzufügen.
ich weis nicht genau an welcher stelle der fehler ist, aber er muss irgend wo bei dem neu einfügen sein.
es ist zwar nicht 100% so wie es mal werden soll, aber wenn das script läuft dann kann ich es wahrscheinlich in die richtige richtung anpassen oder ich muss mich noch mal bei euch melden^^.
mfg
pochy und danke für eure hilfe
 
Moin pochy,

du hast da ein paar Fehler in den letzten Zeilen, hier mal die Korrekturergebnisse:
Code:
newlink.setAttribute('href', 'google.de/?Link='+links[3]);
newlink.setAttribute('target', '_blank');
newlink.appendChild (document.createTextNode('!!NEUER LINK!!'));
navbar.parentNode.appendChild(newlink);
 
super,
ok auf die eine zeile hät ich auch kommen konne war der falsche name^^.
ok danke dann wäre das schon mal geklärt funktioniert jetzt.
 
hmm, ich hab da irgendwie noch dolle probleme mit den grundlagen von js

Code:
var regexp = /\bgreift\b/;
var text = document.getElementById('labelText').innerText;
var ergebnis = regexp.test(text);
if(ergebnis == TRUE) {
	alert('Hier');
} else {
	alert('nein');
}
der text in dem element mit der id "labeltext" sollte überprüft werden ob sich das wort "greift" darin befindet. es wird aber weder hier noch nein ausgegeben-.-

ich werd wohl noch ein paar mal öfter hier vorbei schauen^^
mfg
pochy und danke schon mal
 
innerText ist kein regulärer JS-Bestandteil, das ist Bestandteil von MS-JScript, und nur der IE kennt das.
Probiere stattdessen firstChild.data oder innerHTML(wobei innerHTML nicht nur die Zeichendaten ausgibt, sondern auch HTML-Code, sofern er vorhanden ist)
 
danke, funktioniert schon mal fast.
Code:
var regexp = /\bgreift\b/;
var text = document.getElementById('labelText').firstChild.data;
alert(text);
var ergebnis = regexp.test(text);
if(ergebnis == TRUE) {
	alert('Hier');
} else {
	alert('nein');
}

bei dem ersten alert wird jetzt der inhalt ausgegeben, aber hier oder nein erscheint weiter hin nicht. gibt es noch andere möglichkeiten einen string auf einen substring zu überprüfen?
 
muss einem doch gesat werden das javascript casesensitiv ist^^
ok die beiden tips waren sehr hilfreich.
Code:
var regexp = /\bgreift\b/;
var testtext = document.getElementById('labelText').firstChild.data;
var ergebnis = regexp.test(testtext);
if(ergebnis) {
	var alltables = document.getElementsByTagName('table');
	var testtables = alltables;
	regexp = /Verteidiger/;
	for(var i=0; i<alltables.length; i++) {
		testtables = alltables[i].getElementsByTagName('th');
		ergebnis = regexp.test(testtables[i].firstChild.data);
		if(ergebnis) {
			alert('schleife '+i);
			var SpyTable = alltables[i].innerHTML;
		}
	}
	alert('schleife ok');
	var SpyDorfName = SpyTable.getElementsByTagName('a');
	alert(SpyDorfName[0].firstChild.data);
}
ich suche alle tabellen, um dann in allen nach einer tabelle zu suchen in der sich ein th tag befindet in dem Verteidiger steht und dann diese tabelle merkt. um dann aus dieser tabelle vom ersten link den text zu speichern.
HTML:
<table width="100%" style="border: 1px solid #DED3B9">
<tr><th width="100">Verteidiger</th><th>unbekannt</th></tr>
<tr><td>Dorf:</td><td><a href="#">Linktext</a></td></tr>
mfg
pochy und vielen dank für eure hlfe
 
Code:
ergebnis = regexp.test(testtables[i].firstChild.data);

Es müsste so lauten:
Code:
ergebnis = regexp.test(testtables[0].firstChild.data);
...du suchst ja den Inhalt der ersten <th>
 

Neue Beiträge

Zurück