Supportnet / Forum / Webseiten/HTML
Download per Javascript starten
Frage
Hallo
Wie kann ich per javascript einen Download (also im Prinzip einen Link auf eine Datei) starten?
Sinn der sache soll sein, das das Downloadfenster nur dann angezeigt wird, wenn ein bestimmtes Ereignis stattfindet.
Das Ereignis ist im Javascript schon definiert, ich brauche nur noch eine JS-Funktion, die dann eben aufgerufen wird damit das Downloadfenster erscheint..
Hoffe das reicht für den anfang als info.
Antwort 1 von rfb
Antwort 2 von _mpact
leider nich:
oder muss da nochwas drumrum?
function download()
{
location.href="test.jpg";
}
oder muss da nochwas drumrum?
Antwort 3 von ClemBra
Wenn jetzt das Bild angezeigt wird, statt einen Download anzubieten, dann ist das Normal und liegt an der Endung. Ändern kann man das nur in den Browsereinstellungen oder mit einer serverbasierten Sprache, z.B. PHP im Header des Downloads selber.
Wenn nichts passiert:
Wenn die Box nicht erscheint ist ein fehler im übrigen Code.
Wenn nichts passiert:
function download()
{
alert("Gleich wirst du gelinkt");
window.location.href="test.jpg";
}
Wenn die Box nicht erscheint ist ein fehler im übrigen Code.
Antwort 4 von _mpact
hi
also ich hab das genau so ausprobiert wied da steht. Es passiert nichts. Ich glaube nicht dases am restlichen Code liegt, denn ursprünglich wollte ich anstatt dem Download erst ein Popup öfnnen was auch sehr gut funktioniert hat. rfb hat mir dabei "ein wenig" geholfen und einen alternativen Code zu meinem geschrieben, der ebenfalls einwandfrei funktionierte, nur das mit dem Download klappt nicht:
Mein Code:
Der Code von rfb:
Wie gesagt: In beiden Code-Beispielen wurde zuvor anstatt der Funktion download() eine funktion popup() ausgeführt, was einwandfrei funktioniert hat.
Der Sinn dieser Funktionen ist, das sie den in einem eingabefeld eingegebenen wert auf einen enthaltenen string durchsuchen. Wenn er erhalten ist sollte der download staren.
also ich hab das genau so ausprobiert wied da steht. Es passiert nichts. Ich glaube nicht dases am restlichen Code liegt, denn ursprünglich wollte ich anstatt dem Download erst ein Popup öfnnen was auch sehr gut funktioniert hat. rfb hat mir dabei "ein wenig" geholfen und einen alternativen Code zu meinem geschrieben, der ebenfalls einwandfrei funktionierte, nur das mit dem Download klappt nicht:
Mein Code:
function checkMail()
{
var theMail=document.mailForm.email.value;
if(theMail=="")
{
check=1;
alert("Bitte Mailadresse angeben! " +check);
}
var suche=theMail.search(/@test1.com/);
var search=theMail.search(/@test2.com/);
if(suche!= -1 || search!= -1)
{
check=3;
download();
}
else
{
if(theMail!="")
{
check=2;
alert("ungültige Mailadresse " +check);
}
}
}
Der Code von rfb:
Der Code von rfb:
function testMail(mail)
{
if (mail=="") return "Bitte Mailadresse angeben! ";
if ((mail.indexOf("@test2.com") <0) && (mail.indexOf("@test2.com")<0))
return "ungültige Mailadresse";
return "OK";
}
function checkMail()
{
var status= testMail(document.mailForm.email.value);
if (status!="OK") alert(status);
else
{
download();
}
}
Wie gesagt: In beiden Code-Beispielen wurde zuvor anstatt der Funktion download() eine funktion popup() ausgeführt, was einwandfrei funktioniert hat.
Der Sinn dieser Funktionen ist, das sie den in einem eingabefeld eingegebenen wert auf einen enthaltenen string durchsuchen. Wenn er erhalten ist sollte der download staren.
Antwort 5 von _mpact
aso: vergessen:
Wenn ich die Page im IE6 teste, dann funktioniert das alles so, wie es sein soll, nur wenn eine 'gültige' eingabe erfolgt dann erscheint links unten in der ecke des browsers "Error on Page"
Wenn ich die Page im IE6 teste, dann funktioniert das alles so, wie es sein soll, nur wenn eine 'gültige' eingabe erfolgt dann erscheint links unten in der ecke des browsers "Error on Page"
Antwort 6 von _mpact
ok... hat sich erledigt, funktioniert jetzt einwandfrei... Hab noch n kleinen Fehler entdeckt. Danke
Antwort 7 von rfb
vielelicht solltest du hier wirklich mal den vollständigen code posten oder die Seite verlinken, denn irgendwo steckt da ein dicker fehler, und so kommen wir einfach nicht weiter.