Avatar billede jansangill Nybegynder
04. juni 2008 - 10:59 Der er 15 kommentarer og
1 løsning

Opener.location

Hej

jeg har et problem med at videreføre en værdi fra en popup til den underliggende side.

Jeg har denne funktion som bliver udført når man trykker på en knap på popuppen.

<script type="text/javascript">

function overfor() {
    var long_opener=opener.document.getElementById('longitude').value;
    var lat_opener=opener.document.getElementById('longitude').value;
    var long_this=document.getElementById("lati").innerHTML;
    var lat_this=document.getElementById("lng").innerHTML;
    long_opener=long_this;
    lat_opener=lat_this;
    alert(long_opener+" + "+lat_opener);

}
</script>

Når jeg alerter det ud kommer værdierne med, ligemeget hvilken en af dem det er.

Hvordan får jeg gjordt således at værdienerne fra popup siden bliver lagt over til den underliggende side?
Avatar billede w13 Novice
04. juni 2008 - 11:10 #1
Det kommer jo helt an på, hvor de skal placeres på hovedsiden.

Men du gør det f.eks. med:

opener.document.getElementById("id").value=long_opener;
Avatar billede w13 Novice
04. juni 2008 - 11:10 #2
Dvs. du indleder bare med "opener.", og så har du fat i det andet dokument.
Avatar billede erikjacobsen Ekspert
04. juni 2008 - 13:53 #3
Det du gør i din kode, Jan, er at tage en kopi af vædien i feltet i opener-documentet, og så ændrer du i den kopi.

Du skal nok, som w13 skitserer (men har du ikke byttet om lang... og lat...?):

function overfor() {
    long_opener=opener.document.getElementById('longitude').value=document.getElementById("lati").innerHTML;;
    opener.document.getElementById('longitude').value=document.getElementById("lng").innerHTML;

}
Avatar billede erikjacobsen Ekspert
04. juni 2008 - 13:54 #4
Om igen:

function overfor() {
    opener.document.getElementById('longitude').value=document.getElementById("lati").innerHTML;;
    opener.document.getElementById('longitude').value=document.getElementById("lng").innerHTML;

}
Avatar billede w13 Novice
04. juni 2008 - 14:06 #5
Prøv igen, Erik. =)
Du mener vel:

function overfor() {
    opener.document.getElementById('longitude').value=document.getElementById("lati").innerHTML;;
    opener.document.getElementById('latitude').value=document.getElementById("lng").innerHTML;
}
Avatar billede jansangill Nybegynder
04. juni 2008 - 14:15 #6
jamen dog, det virker. bare af nysgerished, det som w13 sagde, var det ikke hvad jeg gjorde, bare på en anden måde?

Tak forhjælpen begge
Avatar billede w13 Novice
04. juni 2008 - 14:18 #7
Du prøvede at hive referencen til document.getElementById('longitude').value ned i en variable, men du fik kun værdien af dens value.

Uden value havde det virket. Så skulle value bare på, når du skulle overføre:

<script type="text/javascript">
function overfor(){
    var long_opener=opener.document.getElementById('longitude');
    var lat_opener=opener.document.getElementById('longitude');
    var long_this=document.getElementById("lati").innerHTML;
    var lat_this=document.getElementById("lng").innerHTML;
    long_opener.value=long_this;
    lat_opener.value=lat_this;
}
</script>
Avatar billede jansangill Nybegynder
04. juni 2008 - 14:23 #8
tak for lektionen:Z
Avatar billede erikjacobsen Ekspert
04. juni 2008 - 14:47 #9
>w13 04/06-2008 14:06:04 - nej, jeg mener "longitude" begge steder, for det var hvad spørgeren skrev. Men jeg regner med at spørgeren nok ville have haft skrevet det du rettede det til ;)
Avatar billede w13 Novice
04. juni 2008 - 14:56 #10
Ja okay, det overså jeg. =)
Avatar billede jansangill Nybegynder
04. juni 2008 - 16:32 #11
En copy paste fejl.<
Avatar billede mclemens Nybegynder
04. juni 2008 - 20:52 #12
Mon ikke 04/06-2008 14:06:04 skulle være

function overfor() {
    opener.document.getElementById('longitude').value=document.getElementById("lng").innerHTML;;
    opener.document.getElementById('latitude').value=document.getElementById("lati").innerHTML;
}

... Nå, sorry kunne ikke lade være ;)
Avatar billede mclemens Nybegynder
04. juni 2008 - 20:53 #13
Af hensyn til et Ole visit i tråden skal "innerHTML" i
ovenstående måske erstattes af "firstChild.nodeValue"
Avatar billede olebole Juniormester
05. juni 2008 - 15:44 #14
<ole>

Det vil jeg sandelig da ikke håbe! Hvis det derimod er af hensyn til god kodestil, overholdelse af gældende standarder, samt forsøg på ikke at skyde sig selv i foden med uhensigtsmæssigheder, er jeg helt enig  ;o)

/mvh
</bole>
Avatar billede mclemens Nybegynder
05. juni 2008 - 20:14 #15
Hehe =) nodeValue opfører sig egentligt lidt pudsigt
- havde aldrig set forskellen på mellemrum lavet
med nodeValue og så mellemrum lavet i html.

( http://www.eksperten.dk/spm/833923#rid7127810 )
Avatar billede olebole Juniormester
06. juni 2008 - 00:07 #16
Nej, det er ikke særlig pudsigt ... det er vist lige efter bogen  ;o)

Et no-breaking space (&nbsp;) er ikke et alm. mellemrumstegn. Et almindeligt mellemrum hedder \u0020 i Unicode. Et no-breaking space hedder \u00a0
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