01. maj 2006 - 14:55Der er
17 kommentarer og 1 løsning
Overfør data fra et vindue til et andet
hej eksperter.
Jeg sidder med en funktion her hvor du skal kunne klikke på en knap, hvorefter data fra et <Input> feldt, bliver overført til et andet input feldt i et andet vindue.
Jeg havde forestillet mig noget i stil med: document.form1.feldt.value=XXX.XXX.document.form1.value.
Mit problem er at jeg ikke ved hvad XXX.XXX. skal være for at definere den anden browser. Ex. Jeg har lavet en form med et text feldt, og har DGS.dk åben. Så klikker jeg på en knap og det jeg har skrevet i text feldet bliver over ført til tlf nr feltet på DGS.dk
Dette kan ikke lade sig gøre. Det er en sikkerhedsbrist i internet explorer hvis man kunne det og prøver man (det har jeg :P) så får man en "Access Denied" fejl i javascript.
Det må da kunne lade sig gøre på en eller anden måde... har nemlig set det før et sted... men kunne bare ikke få fat i koden da side var skrevet i Asp. /Scifo
Jeg tør godt love dig at det ikke kan lade sig gøre. Ihvertfald ikke på den måde som du ønsker det.
Men det du kan gøre (kommer an på sikkerheden på DGS.dk) er følgende:
1. Lav en form med samme navn som på DGS.dk 2. Lav de formfelter som du ønsker, men med samme navn som på DGS.dk (tjek evt Vis->Kilde) 3. Lav en submit knap der hedder det samme som på DGS.dk 4. Som action på form feltet skal der stå det samme som på DGS.dk .. dog skal der nok tilføjes http://www.dgs.dk/blabla
men den anden løsning som du forespørger er 100% umulig
saymyname > Nope kan ikke lade sig gøre :) Det der gøres der er at siden åbner et vindue (dvs det ejers af dens "OPENER") og dermed kan man få lov til at skrive til den, men at skrive til en anden side er ikke muligt.
Troxa: Det der er desværre mest en debat om ordvalg.
Ja, det kræver at det der har åbnet det andet vindue er det browser vindue hvor JavaScripten afvikles - ellers vil det ikke virke. STADIG er der to vinduer og det er muligt at overføre variabler imellem de 2 vinduer, ligesom personen der skrev ønskede det.
Det som du prøvede at skrive, Troxa, er at variablerne ikke kan overføres imellem forskellige PROCESSER. Men som du selv bemærkede vil en process der åbner et andet vindue have det nyåbnede vindue som "barn" - og dermed vil der være process ID's der er ens der og derfor kan variablerne i forms' overføres imellem 2 VINDUER.
var newwindow = ''; newwindow=window.open('www.dgs.dk','dgs'); og man så alver newwindow.form[0].blabla.blabla = blabla, så vil den sige access denied selvom den kommer fra samme process.
Men den eneste løsning der er på dette er mit forslag med at sende oplysningerne direkte til DGS submit siden, men det vil kun virke hvis de ikke har været inde og lukke for dette "hul".
ved ikke om i har forstået mig korrekt, den skal kun lave "copy" af den tekst jeg har skrevet og "Paste" i feltet på dgs.dk. P.S: Det er ikke DGS det skal bruges til men en internt system i virksomheden hvor jeg arbejder (Har ikke adgang til siden fra server-side)
Hrm, det lyder som om, der er noget forvirring her ...
Det er _ikke_ muligt at scripte mod sider, som browseren ikke forstår kommer fra samme domæne (sikkert derfor troxa insisterer på, at det ikke er muligt !-)
-- det er derimod sagtens muligt, hvis de kommer fra samme domæne, men det kræver så, at det vindue, der udfører det har kendskab til det andet vindue (at det f.eks. er opener, altså det vindue, der har åbnet det aktuelle, eller at det aktuelle vindue har åbnet det andet og opbevaret en reference til det andet i en variabel !-)
Det vil derfor aldrig være muligt at indsætte noget i et felt på f.eks. dgs.dk, mens det sagtens kan være muligt at gøre det imod en anden side, der ligger på et intranet, dog kan det være ndvendigt at definere sidens domæne vha. document.domain !o]
roenving > yep derfor jeg siger det ikke kan lade sig gøre da der er tale om DGS som der hele tiden er givet som eksempel :)
scifo > Kunne være rart med en 100% beskrivelse af hvad det helt præcist er du ønsker, da du hele tiden har brugt DGS som eksempel hvilket egentlig ikke var det du ønskede og det er det hele mit svar er baseret på. Men når du ikke har adgang til server-side koden, så tvivler jeg på at det kan lade sig gøre.
troxa > Ja er så småt ved at indse det :-( Desværre, som skrevet tidligere er det en web-baseret database, hvori vi skal logge, hver gang vi har lavet en opgave. Siden indeholder en form med: - Et text feldt ( Opgave nummer) - En Drop-down boks ( Type opgave ) - En submit knap Jeg har lavet et system, hvor du skriver opgave numret i et text feldt, og den så udfører de fleste af handlingerne, der normalt skulle laves manuelt, og kopiere numret til "ClipBoard" når du trykker på Submit knappen.
Det jeg ønsker er at når jeg trykker på submit knappen, skriver den selv numret ind i database -> Text feldtet, så jeg bare skal klikke på submit knappen, i stedet for at skulle paste numret først.
Jeg "må" ikke submitte numret udefra "lave method="POST"" udefra, dette skal gøre i selve systemet.
Håber dette giver et bedre indblik i mit problem. :-)
Mvh Scifo
P.S. Jeg tjener ikke noget på dette system, det er blot for at lette min hverdag på jobbet :-)
troxa: Ja du har ret... har nu ledt længe nok og kan ikke få det til at lade sig gøre, og eftersom du var en der konkluderede det til at starte med, må det være dine points, hvis du ligger et svar, er det dine ;-)
Igen : i deres kode kan du se deres submit information. Åben et nyt vindue hvorfra der bliver sendt data til deres script der passer me det du vil have. Det virker på DGS.dk fx.
Synes godt om
Ny brugerNybegynder
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.