Hallo liebe User,
ich habe mir eine kleine Classe geschrieben, mit der ich Dateien mit dem Prinzip von Ajax auf den Server "schaufel".[
Die Funktion generiert ein Form und erstellt in der eine input(type=file) der wird dann per POST weggeschickt, aber nicht in das hauptfenster sondern mit
target=iframe_id
an das iFrame übergeben und der soll das machen, dass somit die Seite nicht neu geladen wird.
Nunja, das funktioniert auch wunderbar.
Das problem ist, wenn ich das Element iframe dynamisch (?) erstelle, und dann die funktion aufrufen, öffnet sich ein neues Fenster, statt es in dem iFrame zu öffnen.
Das iFrame existiert aber ganz sicher, ich bekomm ein Zeiger drauf.
Wenn ich das iFrame hardcode dann geht's.
Hier mal der Code:
Ich sitze schon ne ewigkeit daran, vielleicht hat jemand Rat.
Gruss,
MArc
ich habe mir eine kleine Classe geschrieben, mit der ich Dateien mit dem Prinzip von Ajax auf den Server "schaufel".[
Die Funktion generiert ein Form und erstellt in der eine input(type=file) der wird dann per POST weggeschickt, aber nicht in das hauptfenster sondern mit
target=iframe_id
an das iFrame übergeben und der soll das machen, dass somit die Seite nicht neu geladen wird.
Nunja, das funktioniert auch wunderbar.
Das problem ist, wenn ich das Element iframe dynamisch (?) erstelle, und dann die funktion aufrufen, öffnet sich ein neues Fenster, statt es in dem iFrame zu öffnen.
Das iFrame existiert aber ganz sicher, ich bekomm ein Zeiger drauf.
Wenn ich das iFrame hardcode dann geht's.
Hier mal der Code:
HTML:
<script>
function createfc(pname){
name = pname;
//-->>>>>Wenn ich das wieder entkommentiere funktioniert es nicht.
//frame = document.createElement("iframe");
//frame.setAttribute("name","frame_"+name);
//frame.setAttribute("id","frame_"+name);
//document.body.appendChild(frame);
var ua = navigator.userAgent.toLowerCase();
var iebrowser = (ua.indexOf("msie")>-1);
if (iebrowser)
form = document.createElement('<form action="fc.php" target="frame_test" enctype="multipart/form-data" method="post">');
else {
form = document.createElement('form');
form.setAttribute("id", "form_"+name);
form.setAttribute("name", "form_"+name);
form.setAttribute("method", 'post');
form.setAttribute("target", "frame_"+name);
form.setAttribute("enctype", "multipart/form-data");
}
document.body.appendChild(form);
function setAction(pURL){
this.form.setAttribute("action", pURL);
}
function Send(){
this.form.submit();
}
function createInput(pType,pName,pValue){
input = document.createElement("input");
input.setAttribute("type", pType);
input.setAttribute("name", pName);
input.setAttribute("value", pValue);
form.appendChild(input);
}
this.setAction = function(pURL) { setAction(pURL); }
this.Send = function() { Send(); }
this.createInput= function(pType,pName,pValue) { createInput(pType,pName,pValue); }
};
</script>
<input type="button" value="Erstelle Objekt" onClick="MyConnect = new createfc('test'); MyConnect.setAction('fc.php')" />
<input type="button" value="Senden" onClick="MyConnect.Send();" />
<input type="button" value="Input(file) erstellen" onClick="MyConnect.createInput('file','meinfile', '');" />
<br>
<iframe name="frame_test" id="frame_test"></iframe>
Ich sitze schon ne ewigkeit daran, vielleicht hat jemand Rat.
Gruss,
MArc