Avatar billede Lasse S Novice
13. oktober 2008 - 14:13 Der er 12 kommentarer og
1 løsning

først location A, så B

Hej eksperter

Jeg har en side, hvorfra jeg gerne vil submitte data til en underside på en ekstern applikation. Applikationen kræver login, hvilket ikke er noget problem. Desværre er applikation dog bygget sådan på, at det kun er via forsiden, at login/session kan etableres.

Jeg forestiller mig derfor at gøre noget i retning af følgende, men har brug for lidt hjælp. Når brugeren klikker på submit på min side, kaldes et javascript, som (uden at brugeren skal klikke yderligere)
1) åbner et nyt vindue med location = app-forside
2) venter et sekunds tid, mens login/session etableres
3) redirecter location til undersiden (nu hvor login er overstået)

Hvordan ser det ud i js-kode? Jeg tror, at det kan lade sig gøre, men er ikke selv særligt stiv i js...

vh Lasse
Avatar billede Lasse S Novice
13. oktober 2008 - 14:16 #1
og ja, det skulle gerne virke i "de fleste browsere", altså IE6+7, Firefox2+3, m.fl.
Avatar billede w13 Novice
13. oktober 2008 - 14:17 #2
Du mener måske noget i retning af:

<script type="text/javascript">
function Login(){
  window.open("app-adresse.htm","_blank","");
  window.setTimeout("window.location.href='underside.htm'",1000);
}
</script>

Så aktiverer du det bare med onclick="Login()".
Avatar billede Lasse S Novice
13. oktober 2008 - 14:45 #3
ja, det er afgjort noget i den retning, jeg kan bare ikke få settimeout-delen til at virke. Når jeg på http://w3schools.com/js/tryit.asp?filename=tryjs_location skriver...

<html>
<head>
<script type="text/javascript">
function Login(){
  window.open("http://google.dk","test","");
  window.setTimeout("test.location.href='http://jp.dk'",2000);
}
</script>
</head>

<body>
<input type="button" onclick="Login()" value="Show new URL">
</body>
</html>

...så får jeg Google op i et nyt vindue, men ser aldrig JP nogle steder :o(
Avatar billede w13 Novice
13. oktober 2008 - 14:55 #4
Nej, du kan ikke scripte på et andet domæne.

Dvs. at hvis du åbner en af dine egne undersider i stedet for google, så burde det virke. Men du kan ikke ændre google-adressen, fordi du ikke kan scripte på en side, der er et andet domæne af sikkerhedsårsager.

Det må næsten være det, der er grunden.

Jeg ville nok også gøre sådan her i øvrigt:

<html>
<head>
<script type="text/javascript">
function Login(){
  var test = window.open("side.htm","test","");
  window.setTimeout("test.location.href='http://jp.dk'",2000);
}
</script>
</head>

<body>
<input type="button" onclick="Login()" value="Show new URL">
</body>
</html>

For crossbrowser-kompatibilitet.
Avatar billede Lasse S Novice
13. oktober 2008 - 15:05 #5
Med nedenstående kode kan jeg godt "overskrive" location, altså først få Google og så JP - men uden nogen forsinkelse (og så når den nok ikke at logge ind på "Google")...

<html>
<head>
<script type="text/javascript">
function Login(){
  var test = window.open("http://google.dk","test","");
  test.setTimeout(Show(),5000);
}
function Show(){
  var test = window.open("http://jp.dk","test","");
}
</script>
</head>

<body>
<input type="button" onclick="Login()" value="Show new URL">
</body>
</html>
Avatar billede Lasse S Novice
13. oktober 2008 - 15:42 #6
fejlen skyldtes en syntaks-fejl, der skal være "" omrking første parameter i settimeout... nedenståendne virker

function Login(){
  var winopen = window.open("http://google.dk","test","");
  var delay = setTimeout("window.open('http://jp.dk','test','')",2000);
}
Avatar billede w13 Novice
13. oktober 2008 - 15:50 #7
Men det var der da også i 13/10-2008 14:45:36, var der ikke? :)
Avatar billede olebole Juniormester
13. oktober 2008 - 19:35 #8
<ole>

xls >> Nej, der er - fuldstændig som w13 skriver - tale om cross-domain scripting i eksemplet (13/10-2008 14:45:36). Det har aldrig været tilladt i JavaScript  ;o)

/mvh
</bole>
Avatar billede Lasse S Novice
13. oktober 2008 - 21:45 #9
sandt nok, begge to, det er bare dig, der roder rundt i det
Avatar billede w13 Novice
13. oktober 2008 - 21:46 #10
Der tabte du mig.
Avatar billede olebole Juniormester
13. oktober 2008 - 23:42 #11
w13 >> xls giver dig ret i, at der også var gåseøjne om første parameter, som du skrev. Derudover giver han mig ret i, at at du havde ret i, der var tale om cross-domain scripting. Håber ikke, det gør dig endnu mere lost  ;o)
Avatar billede w13 Novice
14. oktober 2008 - 09:47 #12
Det var mest sætningen "Det er bare dig, der roder rundt i det", men går ud fra, han mener sig selv så. =)
Avatar billede olebole Juniormester
14. oktober 2008 - 10:11 #13
*LoL* ... det læste jeg da også som "Det er bare mig, ..."  :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester