Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 29. 8. 2012, 11:59:13
Dynamicky vytvářím formulář, který by se měl odeslat do IFRAME. Bohužel se pokaždé otevře nová záložka.
var inform = document.createElement("form"); inform.appendChild(makeInput("cm","download "+arg)); inform.appendChild(makeInput("path",path)); inform.target = "pepa"; inform.method="post"; inform.style.display="none"; var pepa = document.createElement("iframe"); pepa.className="hidden"; pepa.name="pepa"; document.body.appendChild(pepa); document.body.appendChild(inform); inform.submit(); function makeInput(name,value) { var n=document.createElement("input"); n.name=name; n.value=value; return n; } |
||
peta Profil |
#2 · Zasláno: 30. 8. 2012, 13:18:10
<html> <body> aaa <script>var arg = ''; var path = ''; // pridano var inform = document.createElement("form"); inform.appendChild(makeInput("cm","download "+arg)); inform.appendChild(makeInput("path",path)); inform.target = "pepa"; inform.method="post"; inform.style.display="none"; var pepa = document.createElement("iframe"); pepa.className="hidden"; pepa.name="pepa"; document.body.appendChild(pepa); document.body.appendChild(inform); inform.submit(); function makeInput(name,value) { var n=document.createElement("input"); n.name=name; n.value=value; return n; } </script> bbb </body> </html> FF chybova konzola: Chyba: ReferenceError: arg is not defined, Řádek: 7 Chyba: ReferenceError: path is not defined, Řádek: 8 Po oprave se to cele zacykli. zadna nova zalozka se mi neotevre. |
||
Darker Profil |
Arg i path byly proměnné výše ve skriptu, konzole žádné chyby neházela. Problém jsem vyřešil tím, že formulář vkládám přímo do HTML stránky v IFRAME a odesílám ho v IFRAME:
function Cmd() { /**...**/ var path = "xx"; /**...**/ var commands = {}; /**...**/ commands.download = function(arg) { var inform = document.createElement("form"); inform.appendChild(makeInput("cm","download "+arg)); inform.appendChild(makeInput("path",path)); inform.action="index.php"; inform.method="post"; inform.style.display="none"; var pepa = document.createElement("iframe"); pepa.className="hidden"; pepa.src="about:blank"; pepa.onload = function() {document.body.removeChild(pepa);}; document.body.appendChild(pepa); window.frames[0].document.body.innerHTML=""; window.frames[0].document.body.appendChild(inform); inform.submit(); function makeInput(name,value) { var n=document.createElement("input"); n.name=name; n.value=value; return n; } } } |
||
Časová prodleva: 12 let
|
0