suche nach allen id's gibt merkwürdigen Rückgabewert
piet
- javascript
0 henman0 piet0 Mitleser0 woodfighter
0 Der Martin
Hallo,
ich suche meine Seite mit einem Javascript nach allen id's ab die als String zurückgegeben werden. Heute beim testen sehe ich das id's zurückkommen die gar nicht auf der Seite vorhanden sind. (Quelltext im Browser)
Die Funktion zum lesen aller id's benutze ich schon seit Jahren
function ReadAllId(oElm, strTagName, strAttributeName)
{
/*
lese alle ID's von Webseite ein, außer wenn ID-Name mit Kleinbuchstaben beginnt.
Falls keine ID auf der Webseite vorhanden ist wird eine Fehlermeldung angezeigt.
Rueckgabewert: gebe alle ID's in einem String zurück
*/
var arrElements = (strTagName == '*' && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var StrReturnElements = '';
var erster = 0;
for(var i=0; i<arrElements.length; i++)
{
if (arrElements[i].id == '' || (arrElements[i].id.substr(0,1) >= 'a' && arrElements[i].id.substr(0,1) <= 'z' )) {continue;}
if (erster==0)
{StrReturnElements = arrElements[i].id;erster=1;}
else
{StrReturnElements += '&' + arrElements[i].id;}
}
if (StrReturnElements == '')
{alert("Es wurde keine passende ID auf der Webseite gefunden.\nFunktion:\"ReadAllid\"");}
else
{return StrReturnElements;}
}
Hier der Aufruf der Funktion
param = ReadAllId(document.body, "*" , "id");
param = ReadAllId(document.body, "*" , "id");
Die "nichtvorhanden" id lauten ... unter anderem SL_Ghelp, SL_dots2, SL_Gfeedback, SL_dots1, SL_tts, SL_font ..... die ersten beiden Buchstaben sind immer SL
Hier bin ich absolut überfragt, wie das zu stande kommmt ??
Gruß piet
PS: Falls Codeoptimierung/Verbesserung erwünscht, nur her damit ;-)
Servus piet,
Die "nichtvorhanden" id lauten ... unter anderem SL_Ghelp, SL_dots2, SL_Gfeedback, SL_dots1, SL_tts, SL_font ..... die ersten beiden Buchstaben sind immer SL
Ohne den Code groß gelesen zu haben würde ich schätzen, dass noch andere Javascripts auf deiner Seite vorhanden sind, die DOM-Elemente erstellen und hinzufügen.
Schau dir deinen Quelltext außerdem mit Entwicklertools an (in Chrome z.B. per F12 aufrufbar), nicht mit der normalen Quelltextanzeige oder gar der HTML-Datei selbst. Dynamisch von Javascript erstellte Elemente sind da nicht zu sehen.
ciao
Hallo henman
Servus piet, Schau dir deinen Quelltext außerdem mit Entwicklertools an (in Chrome z.B. per F12 aufrufbar), nicht mit der normalen Quelltextanzeige oder gar der HTML-Datei selbst. Dynamisch von Javascript erstellte Elemente sind da nicht zu sehen.
ciao
das war der richtige Tip ... es lag an so einer App um Webseiten sofort zu übersetzen .. wollte ich mal einbinden, war aber leider noch im Browser installiert. Ich habe die App nun deinstalliert, deshalb lief es auf einem anderen Rechner "normal" (zwischezeitlich festgestellt ;-) Jetzt alles wieder save ... trotzdem Danke ... nur die Diskussion brachte die Idee/Erfolg.
Zum Schluß noch ... ist der 5 Zeiler optimierungsfähig ??
Gruß piet
Zum Schluß noch ... ist der 5 Zeiler optimierungsfähig ??
$(document.body).find('*[id]').map(function() { return this.id; }).get();
;-)
Servus Mitleser,
$(document.body).find('*[id]').map(function() { return this.id; }).get();
Vergiss nicht, den ganze Batzen jQuery zu erwähnen, der da mit dranhängt. Wobei ich kaum noch Seiten kenne, die das nicht eingebunden haben.
ciao
edit: Ironie nicht erkennen ist eine meiner großen Stärken.
Hallo Mitleser,
$(document.body).find('*[id]').map(function() { return this.id; }).get();
$('body [id]').map(function() { return this.id; }).get();
oder, wenn im head
oder im html
-Tag keine IDs zu erwarten sind, sogar noch kürzer:
$('[id]').map(function() { return this.id; }).get();
;-)
LG,
CK
Tach,
Zum Schluß noch ... ist der 5 Zeiler optimierungsfähig ??
ich würde mich eher fragen, ob er überhaupt nötig ist bzw. wofür und würde letzteres dann vermutlich anders lösen.
mfg
Woodfighter
Hi,
ich suche meine Seite mit einem Javascript nach allen id's ab die als String zurückgegeben werden.
ich kann mir zwar nicht vorstellen, wofür das gut sein soll, aber bitte ...
Heute beim testen sehe ich das id's zurückkommen die gar nicht auf der Seite vorhanden sind. (Quelltext im Browser)
Quelltextansicht oder DOM-Ansicht? Es können ja auch IDs von Elementen sein, die dynamisch mit JS ins Dokument eingefügt werden. Die sind in der Quelltextansicht natürlich nicht vertreten.
Die "nichtvorhanden" id lauten ... unter anderem SL_Ghelp, SL_dots2, SL_Gfeedback, SL_dots1, SL_tts, SL_font ..... die ersten beiden Buchstaben sind immer SL
Bist du sicher, dass dein Server nicht gehackt wurde? Bindest du eventuell Werbung aus dubiosen Quellen ein? Hast du eventuell Javascripts eingebunden, denen man nicht unbedingt trauen möchte?
Wenn ich Google nach SL_Ghelp und SL_Gfeedback frage, bekomme ich eine verdächtige Menge Treffer in Russisch, mit denen ich nicht wirklich etwas anfangen kann. Aber das würde mich zumindest verunsichern.
So long,
Martin