![]() |
document.getElementsByTagName("style") ist unvolls
Ich lese mit document.getElementsByTagName("style") alle Styles eines Dokumentes ein. Das Problem an der Sache ist, dass einige Style-Tags via Javascript erzeugt werden, diese Styles werden über diese Funktion nicht gefunden. Was kann ich tun um wirklich alle Styles auszulesen?
Code:
for(n=0;n<site.document.getElementsByTagName("style").length;n=n+1){
//Styles auslesen if(tmp.indexOf("style"+String(n))==-1){ tmp=tmp+";style"+String(n); NeuerEintrag = new Option("style"+String(n),site.document.getElementsByTagName("style")[n].innerHTML, false, true); document.getElementById("MyClasses").options[document.getElementById("MyClasses").length] = NeuerEintrag; } } |
Re: document.getElementsByTagName("style") ist unv
Inwiefern generierst du mit JavaScript die styles?
ich könnte dir vorab nur raten, nicht n=n+1 zu nehmen sondern n++ ... ist viel leichter zu lesen :) Damit incrementierst du dann genauso. Dann wollt ich mal fragen, warum du bei document.getelementbyid("myclasses") stehen hast? also wieso nennst du deine id's myclasses, wenn man eine id doch eh nur einmal auf einer html seite verwendet :?: |
Re: document.getElementsByTagName("style") ist unv
Zitat:
Code:
Innerhalb dieser Scripts werden dann wieder Referenzen zu stylesheets erzeugt:
<script src="externesscript.js"></script>
Code:
Das funktioniert alles wunderbar, nur liefert document.getElementsByTagName("style") eben genau diese Styles NICHT, obwohl sie vorhanden sind. Das Auslesen der Styles passiert natürlich auch erst, nachdem die Seite vollständig geladen ist, also alle Styles schon angewendet sind.
...
document.write("<style src=mystyle.css></style>"); ... Warum ich momentan welches Feld wie genannt habe ist erstmal uninteressant, weil ich ohnehin erst einmal dieses grundlegende Problem lösen muss. |
Re: document.getElementsByTagName("style") ist unv
Versuch mal document.createElement() bzw. document.createAttribute() anstatt dem document.write(). :wink:
|
Re: document.getElementsByTagName("style") ist unv
Zitat:
Mein Script läuft in einem anderen Frame, die Seite, die ich auslesen will/muss ist Tabu :? . |
Re: document.getElementsByTagName("style") ist unv
Hallo,
kannst du dir dein per JS verändertes HTML-Dokument mal anschauen? Stehen die STYLE Elemente da wo sie auch hingehören? Hier noch eine alternative Vorgehensweise, die du sicher auch mit JS anwenden kannst: ![]() Grüße vom marabu |
Re: document.getElementsByTagName("style") ist unv
Er verwendet externe CSS Dateien, wleche durch das JS implementiert werden.
Ich glaub ich hab da mal irgendwo ein Script gelesen, welches auch externe CSS durchgeht. Mit deinem document... schaut er nur nach inline-css. Extern implementierte CSS Dateien werden damit nicht angeschaut. |
Re: document.getElementsByTagName("style") ist unv
Nur mal so dazwischengeworfen: Was ist das denn für eine Variante, ein Stylesheet einzubinden :shock: ?
Code:
Meinst du nicht eher sowas?
<style src=mystyle.css></style>
Code:
<link rel="stylesheet" type="text/css" href="Pfad/zur/CSS/Datei" />
<style type="text/css"> * { /* ... */ } </style> Zitat:
Wenn man die style-Elemente „ordnungsgemäß“ nach S2Bs Vorschlag dynamisch erzeugt, tauchen sie auch in dem Array auf, das document.getElementsByTagName("style") zurückgibt. Wenn du aber keinen Zugriff auf die Seite hast und das nicht ändern kannst, siehts schlecht aus. |
Re: document.getElementsByTagName("style") ist unv
Hallo zusammen....
Die alternative Methode aus Marabus Link hat soweit funktioniert, dass ich die URL des bettr. StyleSheets heraus gefunden habe und jetzt klappt der ertste Teil von dem was ich vor hatte ;) Den ersten Teil habe ich jetzt geschafft :dancer: aber nun habe ich das nächste Problem: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz