Hi,
Code:
document.body.appendChild(frame);
setTimeout('document.getElementById("formsubmit").submit()',1);
Without the setTimeout, it sometimes submits and sometimes doesn't. If I add an alert (or a syntax error!) after line 2, then it always works. With the setTimeout, it always works. Why? Is appendChild asynchronous? Yes I'm a bit new to Javascript.
Full function (not all my code; I'm modifying it
:
Code:
function formUpload(url, html)
{
var postURL = "http://example.net/submit.pl";
var data = encodeURIComponent(html);
var datalen = data.length;
var frame = document.createElement("div");
frame.innerHTML = "<iframe style='frameborder:0;position:fixed;top:31;right:0;width:110px;height:29px;background:#333;font-size:10' name='formframe' id='formframe'></iframe>";
var formObj = document.createElement("form");
formObj.id = "formsubmit"; formObj.method = "POST"; formObj.action = postURL; formObj.target = "formframe";
formObj.style = "visibility:hidden;position:fixed;top:75%;left:25%;";
var input1 = document.createElement("input");
input1.type = "hidden"; input1.name = "length"; input1.value = datalen;
var input2 = document.createElement("input");
input2.type = "hidden"; input2.name = "url"; input2.value = url;
var textObj = document.createElement("textarea");
textObj.name = "text"; textObj.defaultValue = data;
formObj.appendChild(input1); formObj.appendChild(input2);
formObj.appendChild(textObj);
frame.appendChild(formObj);
document.body.appendChild(frame);
setTimeout('document.getElementById("farmsubmit").submit()',1);
}