WinFuture-Forum.de: Bei Klick Auf Einen Link -> Öffnen Einer Datei Im Hintergrund - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Bei Klick Auf Einen Link -> Öffnen Einer Datei Im Hintergrund


#1 _BigTim_

  • Gruppe: Gäste

geschrieben 18. Oktober 2007 - 21:06

Hallo,
ich möchte es gerne erreichen, dass wenn jemand auf einen Link klickt, dessen ursprüngliches Ziel sich öffnet. Im "Hintergrund" soll allerdings noch eine weitere Datei geöffnet werden.
Folgendes Szenario: Ich habe einen Download, bei dem gezählt werden soll, wie oft er schon angeklickt wurde. Dann soll sich eine Alert-Box öffnen, die diese Zahl ausgibt, nach einen Klick auf Ok, startet der Download.

Im Internet Explorer funktioniert das ganze ohne Probleme, nur im FireFox kommt eine leere Alert-Box.

Jemand eine Idee, wie das kommen könnte? Habe das ganze mit JavaScript realisiert, dies ist beim IE und FF aktiviert.

Grüße, BigTim
0

Anzeige



#2 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 18. Oktober 2007 - 21:07

Der Code wäre hilfreich.
0

#3 _BigTim_

  • Gruppe: Gäste

geschrieben 18. Oktober 2007 - 22:15

Sorry, ich vergaß!

Aufgerufen wird der Link damit:

<a onclick=\"kosten()\" href=\"".url($directories_before_current_path.$current_directory_path.$file_name,'file')."\">$file_name</a>


Der JS-Teil mit kosten() ist, wie folgt aufgebaut:

function kosten() {

		try {
			var RequestObject  = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); }
	
		catch(e) {
			var RequestObject = false; }

		if (RequestObject) {
			RequestObject.open('GET', 'PFAD zur PHP Datei, welche die Ausgabe der Alert Box bereit hält');
			RequestObject.onreadystatechange = function () {
				if (RequestObject.readyState == 4) {
					alert(RequestObject.responseText); }
			}

			RequestObject.send(null);

		}
	}


Wie gesagt, im IE funktioniert alles wunderbar!

Dieser Beitrag wurde von BigTim bearbeitet: 18. Oktober 2007 - 22:16

0

#4 _BigTim_

  • Gruppe: Gäste

geschrieben 21. Oktober 2007 - 11:22

Hat denn keiner eine Idee, wieso es im IE geht und im FF nicht?! ;)
0

#5 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 21. Oktober 2007 - 11:56

Versuche mal folgende Initialisierung des XMLHttpRequest-Objektes:
var xmlHttp = null;

if (typeof XMLHttpRequest != 'undefined') {
	// Mozilla, Opera, Safari sowie Internet Explorer 7
	xmlHttp = new XMLHttpRequest();
}

if (!xmlHttp) {
	// Internet Explorer 6 und älter
	try {
		xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
		try {
			xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			xmlHttp  = null;
		}
	}
}
...

0

#6 _BigTim_

  • Gruppe: Gäste

geschrieben 21. Oktober 2007 - 20:45

Danke für die Antwort!
Also so gesehen wurde das ganze nun verschlimmbessert! ;)
Es funktioniert nun, dass in beiden das AlertFenster kommt allerdings kommt das Fenster sofort, wenn man auf die Seite geht, wo der Link steht. Nicht erst, wenn man auf den Link klickt. *verwirrt schaut*

So sieht es jetzt aus:

var xmlHttp = null;

if (typeof XMLHttpRequest != 'undefined') {
	// Mozilla, Opera, Safari sowie Internet Explorer 7
	xmlHttp = new XMLHttpRequest();
}

if (!xmlHttp) {
	// Internet Explorer 6 und älter
	try {
		xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
		try {
			xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(e) {
			xmlHttp  = null;
		}
	}
}

if (xmlHttp) {
			xmlHttp.open('GET', 'PFAD zur PHP Datei, welche die Ausgabe der Alert Box bereit hält');
			xmlHttp.onreadystatechange = function () {
				if (xmlHttp.readyState == 4) {
					alert(xmlHttp.responseText); }
			}

			xmlHttp.send(null);

}

Dieser Beitrag wurde von BigTim bearbeitet: 21. Oktober 2007 - 20:48

0

#7 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 21. Oktober 2007 - 21:06

Das ist auch logisch. Den ganzen Kram musst du noch in eine Funktion packen, wie du es oben schon richtig gemacht hast.
0

#8 _BigTim_

  • Gruppe: Gäste

geschrieben 21. Oktober 2007 - 21:13

Arg, mein Fehler.
Nunja, gemacht und wieder das selbe Problem, wie am Anfang.... ;)
0

#9 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 22. Oktober 2007 - 06:39

Also bei mir funktioniert folgendes im Firefox
<script type="text/javascript">
	function kosten() {
		var xmlHttp = null;

		if (typeof XMLHttpRequest != 'undefined') {
			// Mozilla, Opera, Safari sowie Internet Explorer 7
			xmlHttp = new XMLHttpRequest();
		}

		if (!xmlHttp) {
			// Internet Explorer 6 und älter
			try {
			xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
			try {
				xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlHttp  = null;
			}
			}
		}

		if (xmlHttp) {
				xmlHttp.open('GET', 'meine_url');

				xmlHttp.onreadystatechange = function () {
				if (xmlHttp.readyState == 4) {
					alert(xmlHttp.responseText);
				}
				}

				xmlHttp.send(null);
		}
	}
</script>

<a onclick="kosten();return false" href="#">Klick</a>

0

#10 _BigTim_

  • Gruppe: Gäste

geschrieben 22. Oktober 2007 - 12:42

Danke für die Antwort! ;)
Also der LInk sieht bei mir so aus:

<a onclick=\"kosten()\" href=\"".url($directories_before_current_path.$current_directory_path.$file_name,'file')."\">$file_name</a>


Funktioniert leider nicht mit dem von dir geposteten Code... ;)
0

#11 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 22. Oktober 2007 - 13:00

Ah. jetzt sehe ich es. Das kann ja auch gar nicht funktionieren.

href ruft die richtige Adresse auf. Läuft also nicht über Ajax. Aber woran du nicht gedacht hast, ist die eigentliche URL an die Funktion zu übergeben.

Du müsstest es wie folgt ändern:
<a onclick="kosten('meineURL');return false;" href="meineURL">Link</a>

Und das return false nicht vergessen, da sonst auch noch das href-attribut ausgeführt wird, was du aber dann nicht benötigst.
und
function kosten(meineURL) {
...
xmlHttp.open('GET', meineURL);
...

}

0

#12 _BigTim_

  • Gruppe: Gäste

geschrieben 22. Oktober 2007 - 19:06

Irgendwie komm ich da nicht mehr mit.
Könntest du mir das vielleicht anpassen, mit dem o.g. Link von mir? Ich krieg da nichts bei raus irgendwie. :)
0

#13 Mitglied ist offline   NightTiger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 701
  • Beigetreten: 19. März 06
  • Reputation: 0
  • Wohnort:Bern
  • Interessen:Webdesign -&gt; (X)HTML, CSS, ein bisschen PHP und ein bisschen JavaScript ;))

geschrieben 22. Oktober 2007 - 19:24

Mit

function kosten(meineURL) {
		var xmlHttp = null;

		if (typeof XMLHttpRequest != 'undefined') {
			// Mozilla, Opera, Safari sowie Internet Explorer 7
			xmlHttp = new XMLHttpRequest();
		}

		if (!xmlHttp) {
			// Internet Explorer 6 und älter
			try {
			xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
			try {
				xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xmlHttp  = null;
			}
			}
		}

		if (xmlHttp) {
				xmlHttp.open('GET', meineURL);

				xmlHttp.onreadystatechange = function () {
				if (xmlHttp.readyState == 4) {
					alert(xmlHttp.responseText);
				}
				}

				xmlHttp.send(null);
		}
	}


und dem Link:

<a onclick=\"kosten('**LINK_ZUR_ALERT_MELDUNG**')\" href=\"".url($directories_before_current_path.$current_directory_path.$file_name,'file')."\">$file_name</a>


geht's im IE, jedoch nicht im FF. (wurde auch auf meinem Rechner getestet, negativ!)

bzw. das Alert wird angezeigt, jedoch leer und die PHP-Sachen die in der php-Datei, die per kosten() aufgerufen wird, werden auch nicht ausgeführt.

Dieser Beitrag wurde von NightTiger bearbeitet: 22. Oktober 2007 - 19:29

0

#14 _BigTim_

  • Gruppe: Gäste

geschrieben 23. Oktober 2007 - 19:47

Hat noch irgendjemand eine Idee?!
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0