Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hallo, ich möchte dass all URLs meiner Links auf der Seite, die ein Popup öffnen geändert werden. Hier habe ich ein Beispiel: Zuvor: http://www.meineseite.de Danach: popup.http://www.meineseite.de Ich will, dass also bei jeder URL, die ein neues Browserfenster öffnen will dieses popup. davor gesetzt wird. Ich weiss, dass diese URLs danach Schrott sind, benötige dass aber für ein Programm. Hier habe ich ein Code, der dies macht, jedoch macht er das nur bei den Links, die target="blank" enthalten und nicht bei den von JavaScript geöffneten Popups. function(){for(i=0;i<document.links.length;i++)if(document.links[i].target=='_blank'){document.links[i].target='_self';document.links[i].href='popup.'+document.links[i].href;}}Kann mir jemand weiterhelfen????
Datum: 11.08.2005-16:57

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hi, und was machst, wenn jemand PopupBlocker austrickst? Es gibt derzeit nämlich einen Trend, der in Richtung DHTML geht. Soll heißen, es wird gar kein neues Fenster geöffnet, sondern eines dynamisch programmiert. Könntestja aus einem skipt über eine RegExp die jeweilige Datei durchsuchen und alle "window.open("http://.."...)" in "window.popen(...)" ändern, was aber zur Laufzeit widerum einen JavaScript-Fehler erzeugen würde. Mit JavaScript wird das IMHO nicht funktionieren, denn wie willst Du an Objekter herankommen, die noch gar nicht existent sind? -uw
Datum: 12.08.2005-11:29

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Es geht nicht darum, dass man das umgehen kann, es gaht ganz einfach darum, dass man die URLs der Links ändert. Bei target="_blank" sowie den JavaScripts. UND wieso sind die Objekter nicht Existent? Ich kenn jetzt nicht genau den Code von JS aber wenn das so aussieht: window.open("http://www.meineseite.de") dann soll das JS es zu diesem ändern window.open("popup.http://www.meineseite.de")
Datum: 12.08.2005-11:38

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hi, sorry, das war ein Tippfehler. Ich meinte Objekte, in diesem Falle das neue window-Objekt. Sorry. Das Fenster extistiert ja erst, wenn es geöffnet wurde.
window.open("http://www.bla.com/", "FensterName", "Optionen");
In diesem Falle würdest den Link über
window.FensterName.location = "popup." + window.FensterName.location;
ändern können, wenn ich nicht irre.-uw
Datum: 12.08.2005-11:52

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| OK, dass ist gut ABER, kann ich dass auch ändern, egal welche ID (FensterName) dem Popup zugewiesen worden ist ändern aber dies soll auch mit allen Popup-Links passieren.
Datum: 12.08.2005-11:55

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hi, da bin ich mir nicht sicher. Ich bin mir fast sicher, dass für diese Aktionen die FenterNamen bekannt sein müssen. Beschreib' doch bitte mal den Hintergrund des ganzen. Hast Du eine Möglichkeit, an den jeweiligen Code in Form einer TextDatei heranzukommen? Dann ginge das nämlich mittels Perl und regulären Ausdrücken. -uw
Datum: 12.08.2005-12:05

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Also, es ist so, ich habe eine unbekannte seite, das script muss mit egal welcher funktionieren, weil ich ein kleines Programm erstelle. Und dort will ich alle Popup-URLs ändern, da dann mein Programm eine bestimmte Funktion startet, wenn dort popup. davor steht. Und somit kann ich das auch nicht über PERL machen. Wenn du jetzt sagst, dass musst du in die Seite speichern, ja, mein Programm kann das machen. Ich benötige halt nur den Code Kann sich das JS nicht die Adresse aus dem window.open JS heraussuchen, das ändern und dann wieder inplementieren????
Datum: 12.08.2005-12:11

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hier aus SELFHTML location: Allgemeines zur Verwendung Über das Objekt location, das in der JavaScript-Objekthierarchie unterhalb des window-Objekts liegt, haben Sie Zugriff auf den vollständigen URI der aktuell angezeigten Web-Seite. Sie können den URI oder Teile davon zur Weiterverarbeitung abfragen und ändern. Beim Ändern führt der Web-Browser einen Sprung zu einem neuen URI aus, genau so wie bei einem Verweis. Beispiele: window.location.href = "datei2.htm"; MeineDomain = location.host; parent.frames[1].location.href = "datei2.htm"; Zweitfenster.host = "www.selfhtml.org"; Erläuterung: Methoden des location-Objekts können Sie mit location aufrufen. Sie können auch window. davor notieren. Da es sich dabei aber um die Adresse des aktuellen Fensters handelt, ist die Angabe des Fensternamens nicht zwingend erforderlich. Anders beim Zugriff auf andere Fenster oder Frame-Fenster. In diesen Fällen müssen Sie das Fenster korrekt adressieren. Lesen Sie für zusätzliche Fenster den Abschnitt zur Verwendung des window-Objekts und für Frame-Fenster den Abschnitt über die Verwendung des frames-Objekts. Hilft das vielleicht??? Kenne mich mit JS nicht aus und weiss nicht, was ich jetzt da weiter machen sollte.
Datum: 12.08.2005-12:15

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hi, das Problem in JS ist eben, dass das Popup erst existieren muss, bevor man darauf zugreifen kann. Die einzige Möglichkeit sehe ich in der Tat darin, die jeweilige Seite in einer Variable zu speichern und sie dann mit regulären Ausdrücken zu durchsuchen, bzw. zu verändern. -uw
Datum: 12.08.2005-12:17

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Ja, den HTML-Code der Seite ändern, habe doch in meinem ersten Posting zu diesem Thread doch ein Beispiel gegeben. Mit dem klappt das auch. Also muss man per JS im HTML-Code das JS suchen.
Datum: 12.08.2005-12:23

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| habe das so ausprobiert, geht aber nicht javascript:function(){window.location.href="popup."+window.location.href;}
Datum: 12.08.2005-12:28

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Ach ich glaube wir verstehen uns nicht ganz, also ich habe eine Seite1 (seite1.html) dann habe ich eine Seite2 (seite2.html) in der seite 1 habe ich diesen Befehl window.open("seite2.htm) --oder so ähnlich nun will ich in der seite 1 den code ändern, nicht in seite 2 also wenn das Popup noch nicht offen ist. DAVOR: window.open("seite2.htm) DANACH window.open("popup.seite2.htm) verstehen wir uns jetzt? Nicht in der Seite 2 was ändern, sondern in der Seite, die das Popup bei einem link öffnen will.
Datum: 12.08.2005-12:36

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hi, gehe ich nun davon aus, dass Du diesen Code INNERHALB des Popup verwendest, so sage ich mit Sicherheit, dass das funktioniert. Ich sagte auch, dass Du die location eines Popup NUR verändern kannst, wenn es schon geöffnet wurde, was aber bei Dir NICHT der Fall ist, wenn ich das richtig verstanden habe. Und tschüss. -uw
Datum: 12.08.2005-12:37

|
re: Mit JS HTML Code temporär ändern (Nachtrag)
|
Seitenanfang |
| Nein, man kann JavaScriptCode *nicht* mittels JavaScript verändern.
Datum: 12.08.2005-12:40

|
re: Mit JS HTML Code temporär ändern (Nachtrag)
|
Seitenanfang |
| wieso, wenn ich js vorschreibe es soll den quelltext ändern, dann kann ich ja sagen es soll zwischen <script> und </script> suchen und wenn dort window.open erscheint, dann soll es was weiss ich, 3 zeichen weitergehen und dort die URL rausholen .......... wieso soll dass denn nicht möglich sein??
Datum: 12.08.2005-12:52

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Hm, das klingt als waere es einiger Aufwand.. Du koenntest ueber das DOM den Inhalt der Skript-Objekte aendern, die Frage dabei ist welcher Code zuerst ausgefuehrt wird. Oder Du muesstest eine Moeglichkeit finden die Memberfunktion open() des window-Objekts in JS zu ueberschreiben. Da das nicht geht, musst Du dich mit der Objektorientierung rumschlagen. Du muesstest deine eigene Klasse von window ableiten und die open() Funktion so abaendern, das erst die URL modifiziert wird und dann ggf. die Funktion der Superklasse aufgerufen wird. Die sichere und einfachere Variante waere wahrscheinlich die 2., da Parsing von Skript-Code ziemlich aufwaendig sein kann. Aber ich habe keine Ahnung ob sie sich realisieren laesst. Und dann waere da noch die Frage, wo dein Code denn ueberhaupt laufen soll. Bookmarklet? Anderer Frame? Oder direkt in der zu behandelnden HTML-Seite? Je nachdem wo, koennten da noch die Sicherheitseinstellungen des Browsers reinpfuschen (Stichwort Cross-Site-Scripting).
Datum: 13.08.2005-12:18

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Aber ích werde den Code dann beim fertigstellen der Seite starten lassen. Ich benötige halt nur einen Code, der mir diese Arbeit erledigt, es soll ganz einfach diese URLs ändern. Gibt es vielleicht eine Möglichkeit dies Über ein ActiveX Control zu machen oder direkt auf das IE ActiveX zuzugreifen?
Datum: 13.08.2005-15:16

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Und wie was meinst du mit dem COM, welcher Code zuerst ausgeführt wird, was meinst du. Ich entwickle ein Programm, in dem ich das einbauen will, dieses Programm ist auch in der Lage dynamisch über JavaScript änderungen an der Seite vorzunehmen, wenn ich die Seite lade, wird dann sofort das JS was ich benötige eingebunden, brauche wie gesagt halt nur diesen Code, der mir das ändert.
Datum: 13.08.2005-15:26

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Oder wir können wie vorher schon gesagt, den Code in eine Variabel setzen, dort alles ändern und dann wieder implamentieren. Das wäre eigentlich doch die beste Methode.
Datum: 13.08.2005-16:12

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| Ich sprach nicht von COM, sondern von DOM - Das Document Object Model. Das was man benutzt um den Inhalt einer HTML-Seite in Form einer Baumstruktur per JavaScript abzuklappern und ggf. zu aendern. Irgendwie hab ich grad den Faden verloren.. Was meinst Du mit "Du entwickelst ein Programm"? Baust Du deinen eigenen Browser, oder nur JS-Code der in einem X-beliebigen Browser ausgefuehrt wird? Einen Code kann ich Dir nicht liefern, da ich JS versuche weitgehenst zu umschiffen und meinen Loesungsansatz wie ich es angehen wuerde hab ich ja schon aufgezaehlt.
Datum: 13.08.2005-16:28

|
re: Mit JS HTML Code temporär ändern
|
Seitenanfang |
| So gesehen ein Browser. Aber von DOM habe ich noch nie was gehört, wie funktioniert das, kannst du mir vielleich bitte so einen Code basteln?
Datum: 13.08.2005-18:15

|