Avatar billede tdh1309 Juniormester
26. april 2005 - 08:33 Der er 7 kommentarer og
1 løsning

Tab af parent ?

Hej

Jeg har en side som består af to frames.
1) engine
2) workarea

Flowet er:
1) engine generer script som opdaterer workarea (virker)
2) engine genindlæses
3) engine generer script som opdaterer workarea (virker ikke helt - se nedenfor)

Jeg har en Javascript funktion som opdaterer url på min <img>
Den kaldes ved:
updateImg(0,'../tmpImg/test_radB14C6.png');

Mit script fra punkt 2 ser ud som:
<script type="text/javascript">
  function updateWorkarea(){
    var x;
    var y;
    updateImg(0,'../tmpImg/test_radB14C6.png');
  }
  </script>
  <script>updateWorkarea();</script>


  <script type="text/javascript">
    function performUpdate(str)
    {
      queryStr = "";
      queryStr = queryStr + str
      queryStr = window.location.pathname + '?' + queryStr;
      document.location.href=queryStr;
    }

    function updateImg(graphNo, imgSrc){
      var x=parent.workarea.document.images
      x[graphNo].src=imgSrc
    }
  </script>

Ved punkt 2 opstår fejlen:  object expected ...., som jeg tolker som at den ikke kan finde min <img>!!!
Det undrer mig at min updateImg(...) virker under punkt 1 men ikke under punkt 2 ....

Komentarer, konkrete svar og lign. efterlyses
Avatar billede roenving Novice
26. april 2005 - 09:08 #1
Hvor kan du registrere fejlen ?-)

-- hvilken linje er det i, for så kan du teste objekter i linjen før med alerts !-)
Avatar billede tdh1309 Juniormester
26. april 2005 - 09:15 #2
Fejlen opstår ved kaldet updateImg(0,'../tmpImg/test_radB14C6.png');
Jeg har forsøgt at fange billedet via ....

Her oplever jeg tilsvarende, at første gang siden læses virker det FINT. Så genindlæser jeg engine og nu fejler den ...

Min nye test funktion:
function testIMG(){
  curNo = parent.workarea.document.getElementById('19640').name
  alert(curNo)
}

min konklusion er at parent.workarea..... på en eller anden måde ryger ad ht. til
Avatar billede tdh1309 Juniormester
26. april 2005 - 09:21 #3
nu bliver jeg virkelig forvirret, der hvor fejlen opstår laver jeg en alert hvor jeg kalder mit billede:
response.write "alert(parent.workarea.document.getElementById('19640').name);"

Og nu fejlen den ikke!
Men hvis jeg kalder en funtion der gør tilsvarende kommer der en fejl?
Altså:
<script type="text/javascript">
  function updateWorkarea(){
  var x;
  var y;
  alert(parent.workarea.document.getElementById('19640').name);  // virker
  testIMG();              // fejler
}
    </script>
    <script type='text/javascript'>updateWorkarea();</script>
Avatar billede roenving Novice
26. april 2005 - 09:23 #4
Prøv at alerte parent.workarea
parent.workarea.document

osv.

-- og så hører det forøvrigt med i historien at id'er som starter med et tal er ulovlige !-)
Avatar billede tdh1309 Juniormester
26. april 2005 - 10:30 #5
Vedrørende ID - I did'nt now men tak for oplysningen.
Angående min mystiske fejl var den nok meget logisk...
Jeg forsøgte at kalde en funktion inden den var oprettet!
Løsning: jeg flyttede mine hjælpefuntioner op i toppen af siden.

Mange tak for gode spørgsmål så jeg kom på rette vej!
Kom med et svar så du kan få dine points
Avatar billede roenving Novice
26. april 2005 - 10:34 #6
Velbekomme '-)

-- men behold langt de fleste af dine point selv, for min indsats matcher næppe 3 gange så meget som svært plus noget mere !-)
Avatar billede tdh1309 Juniormester
26. april 2005 - 11:02 #7
Nej men så har der nok været nogle gange med det modsatte
Avatar billede roenving Novice
26. april 2005 - 11:05 #8
Tak for point ;~}
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