quelltext bearbeiten
alex
- javascript
Hi,
ich hab eine Frage weil ich mir nicht sicher bin ob das überhaupt möglich ist. Ich prüfe mit einem Javascript ob eine Seite ein Object-Tag enthält oder nicht. Wenn es eins gibt, überprüfe ich ob es eine bestimmte classid hat. Hat es diese classid nicht, möchte ich das Object-Tag gerne aus dem Quelltext löschen bzw. deaktivieren (Kommentar).
Im Moment versuche ich dies mit "removeChild()" was jedoch leider nicht funktioniert. Eventuell habe ich aber auch die Funktion falsch verstanden :-)
Ist es überhaupt möglich mit Javascript den Quelltext so zu ändern?
danke schonmal im voraus.
gruß
Alex
Hi,
Im Moment versuche ich dies mit "removeChild()" was jedoch leider nicht funktioniert. Eventuell habe ich aber auch die Funktion falsch verstanden :-)
Eventuell, aber das koennen wir ja kaum beurteilen ...
Ist es überhaupt möglich mit Javascript den Quelltext so zu ändern?
Na nimmst du an, eine removeChild benannte Methode gaebe es nur so zum Spass?
MfG ChrisB
Hi,
Hi,
Ist es überhaupt möglich mit Javascript den Quelltext so zu ändern?
Na nimmst du an, eine removeChild benannte Methode gaebe es nur so zum Spass?
Nein aber eventuell löscht das das Objekt ja nur aus dem Array.
Du kannst mir ja dann sicherlich meinen Fehler aufzeigen oder:
var elements = document.getElementsByTagName('object');
for(j=0; j<elements.length; j++) {
str+=elements[j].getAttribute("classid");
if (! str.match(/clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/i)) {
var Knoten = document.getElementsByTagName('object')[0].firstChild;
alert(Knoten);
verschwunden = document.getElementsByTagName('object')[0].removeChild(Knoten);
alert(verschwunden);
Die alerts sind nur zum debuggen da. Aufgerufen werden beide, jedoch bleibt das Objekt in der Seite unverändert.
gruß
Alex
Hi,
var Knoten = document.getElementsByTagName('object')[0].firstChild;
alert(Knoten);
verschwunden = document.getElementsByTagName('object')[0].removeChild(Knoten);
alert(verschwunden);Die alerts sind nur zum debuggen da. Aufgerufen werden beide, jedoch bleibt das Objekt in der Seite unverändert.
Wenn du das Object entfernen willst, dann solltest du das auch tun - derzeit entfernst du ja nur sein erstes Kind-Element.
(Und da du in einer Schleife ueber alle Objects laeufst, nehme ich an, du wuerdest dann auch das jeweils aktuelle entfernen wollen, und nicht immer das mit dem Index 0?)
MfG ChrisB
Hi,
ja die clsid ist von Flash.
Wenn du das Object entfernen willst, dann solltest du das auch tun - derzeit entfernst du ja nur sein erstes Kind-Element.
Ja hab zwischenzeitlich noch das Posting hiergefunden, was mir sehr
geholfen hat das ganze besser zu verstehen -> http://forum.de.selfhtml.org/archiv/2007/2/t145307/
(Und da du in einer Schleife ueber alle Objects laeufst, nehme ich an, du wuerdest dann auch das jeweils aktuelle entfernen wollen, und nicht immer das mit dem Index 0?)
Das hatte ich jetzt nur nochmal zum gegen checken drin. Später kommt das aus elements.
Das Skript scheint jetzt zu funktioniert.
Allerdings ist das Object immernoch über den Quelltext einsehbar, nur
das Javascript verhindert den Zugriff darauf. Ist das so richtig?
So schaut es im Moment aus:
function findnonflash() {
str="";
knoten="";
verschwunden="";
var elements = document.getElementsByTagName('object');
for(j=0; j<elements.length; j++) {
str+=elements[j].getAttribute("classid");
if (! str.match(/clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/i)) {
var knoten = elements[j];
verschwunden = knoten.parentNode.removeChild(knoten);
}
str="";
}
}
gruß
Alex
Hi,
Das Skript scheint jetzt zu funktioniert.
Allerdings ist das Object immernoch über den Quelltext einsehbar, nur
das Javascript verhindert den Zugriff darauf. Ist das so richtig?
Nein, JavaScript hat das Element aus dem DOM-Baum entfernt.
Der Quelltext, der dir ueber die normale Quelltext-Ansicht des Browsers angezeigt wird, spiegelt dynamische Aenderungen am DOM aber natuerlich nicht wieder - der zeigt das, was der Browser urspruenglich vom Server erhalten hat.
Aber bswp. Firebugs Moeglichkeit, den Quelltext der aktuellen Selektion anzuzeigen, zeigt dir eine "Live"-Ansicht. Und damit kannst du natuerlich auch gleich das aktuelle DOM in allen seinen Details untersuchen.
MfG ChrisB
Hi,
Nein, JavaScript hat das Element aus dem DOM-Baum entfernt.
Der Quelltext, der dir ueber die normale Quelltext-Ansicht des Browsers angezeigt wird, spiegelt dynamische Aenderungen am DOM aber natuerlich nicht wieder - der zeigt das, was der Browser urspruenglich vom Server erhalten hat.
Aber bswp. Firebugs Moeglichkeit, den Quelltext der aktuellen Selektion anzuzeigen, zeigt dir eine "Live"-Ansicht. Und damit kannst du natuerlich auch gleich das aktuelle DOM in allen seinen Details untersuchen.
ah das bringt doch schon etwas mehr Licht in die Sache, vielen Dank.
Gibt es dann die Möglichkeit das Object auch aus dem Quelltext zu entfernen?
Oder kann ich zumindest mit einer Funktion vor dem Object-Tag die Kommentarzeichen setzen?
gruß
Alex
Hi,
Gibt es dann die Möglichkeit das Object auch aus dem Quelltext zu entfernen?
Aber natuerlich - sie hoert auf den Namen "Texteditor".
Oder kann ich zumindest mit einer Funktion vor dem Object-Tag die Kommentarzeichen setzen?
Wozu?
MfG ChrisB
Hi,
if (! str.match(/clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/i)) {
Flash, richtig?
var Knoten = document.getElementsByTagName('object')[0].firstChild;
Dies ist ein <param>-Element, nehme ich an.
Die alerts sind nur zum debuggen da. Aufgerufen werden beide, jedoch bleibt das Objekt in der Seite unverändert.
Der Flash-Film bleibt unverändert. Er hat bei seiner Erzeugung alle Informationen erhalten, die er aus dem Dokument benötigte. Auf Veränderungen im DOM-Baum reagiert er nicht.
Cheatah