Seite 1 von 1
Bei Klick Auf Einen Link -> Öffnen Einer Datei Im Hintergrund
#1 _BigTim_
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
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
Anzeige
#3 _BigTim_
geschrieben 18. Oktober 2007 - 22:15
Sorry, ich vergaß!
Aufgerufen wird der Link damit:
Der JS-Teil mit kosten() ist, wie folgt aufgebaut:
Wie gesagt, im IE funktioniert alles wunderbar!
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
#4 _BigTim_
geschrieben 21. Oktober 2007 - 11:22
Hat denn keiner eine Idee, wieso es im IE geht und im FF nicht?!
#5
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; } } } ...
#6 _BigTim_
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:
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
#7
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.
#8 _BigTim_
geschrieben 21. Oktober 2007 - 21:13
Arg, mein Fehler.
Nunja, gemacht und wieder das selbe Problem, wie am Anfang....
Nunja, gemacht und wieder das selbe Problem, wie am Anfang....
#9
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>
#10 _BigTim_
geschrieben 22. Oktober 2007 - 12:42
Danke für die Antwort!
Also der LInk sieht bei mir so aus:
Funktioniert leider nicht mit dem von dir geposteten Code...
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...
#11
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:
Und das return false nicht vergessen, da sonst auch noch das href-attribut ausgeführt wird, was du aber dann nicht benötigst.
und
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); ... }
#12 _BigTim_
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.
Könntest du mir das vielleicht anpassen, mit dem o.g. Link von mir? Ich krieg da nichts bei raus irgendwie.
#13
geschrieben 22. Oktober 2007 - 19:24
Mit
und dem Link:
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.
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
Thema verteilen:
Seite 1 von 1