Avatar billede bhn.314 Nybegynder
03. august 2004 - 15:36 Der er 7 kommentarer og
1 løsning

Aktivere næste <a> fra popup via opener.document

Jeg har en side searchresult.php der laver en <form> med nogle <a> der åbner et vindue.  Jeg vil gerne kunne aktivere det næste anchor i form'en fra det vindue der popper op (vha. window.open()), dvs. noget a lá opener.document.theresult.????? Men hvordan ¤%&§!"#¤% får jeg fat i det næste <a> og får åbnet popup'en?

searchresult.php
<html>
....osv...
<form name="theresult">
<a name="info" name="26470" onClick="window.open('index.php?pageid=show&item_id=26470','Item','scrollbars, width=650,height=400');"><img src="pics/info.gif"></a>
<a name="info" name="29522" onClick="window.open('index.php?pageid=show&item_id=29522','Item','scrollbars, width=650,height=400');"><img src="pics/info.gif"></a>
...osv....
</form>
...osv....
</html>
Avatar billede bhn.314 Nybegynder
03. august 2004 - 15:39 #1
...det selvfølgelig window.opener.document.theresult.?????
Avatar billede roenving Novice
03. august 2004 - 15:54 #2
Tjah, man kunne jo arbejde sig langsomt frem:

<a href="#" onclick="opener.showNext(self.location.href.replace(/^.*(\d+)$/,'$1')">Næste</a>

-- og i hovedvinduet:

<script type="text/javascript">
function showNext(id){
  l = document.theresult.getElementsByTagName("a");
  for(i=0;l.length>i;i++){
    if(l[i].name==id)break;
  }
  l[i+1].click();
}
</script>

-- det er absolut utestet, bl.a. er der et indlysende problem, når vi kommer til det sidste link i søgningen, men det må vi lige kigge på, når vi det ovenstående til at fungere !-)
Avatar billede bhn.314 Nybegynder
03. august 2004 - 15:55 #3
Kigger lige på det - ser lovende ud....
Avatar billede roenving Novice
03. august 2004 - 17:43 #4
-- der mangler i hvert fald en slut-parantes:

<a href="#" onclick="opener.showNext(self.location.href.replace(/^.*(\d+)$/,'$1'))">Næste</a>
Avatar billede bhn.314 Nybegynder
04. august 2004 - 09:42 #5
>>>roenving: Det er for vildt, det virkede med lidt tilpasning - tak for hjælpen. Du har reddet min dag !!!!!!!!!

I popup:

onClick="opener.showNext(<xsl:value-of select="person/person_id"/>);"

I parent vindue:
<SCRIPT>
function showNext(id){

  var anchors= document.getElementsByTagName("a");

  for(i=0;anchors.length>i;i++)
  {
    var anchor = anchors[i];

    if(anchor.getAttribute("name")==id)
    {
        anchors[i+2].click();
        break;
    }
  }
}
</SCRIPT>
Avatar billede roenving Novice
04. august 2004 - 12:44 #6
Dur den også mod det sidste link ?-)

-- og velbekomme '-)
Avatar billede bhn.314 Nybegynder
04. august 2004 - 13:03 #7
Ja, den håndterede den sidste da jeg fik if(nextAnchor.getAttribute("name")>0) med !

Resultatet blev derfor følgende, der også kunne gå tilbage.

function showNext(id, direction)
{
  var anchors= document.getElementsByTagName("a");

  for(i=0;anchors.length>i;i++)
  {
    var anchor = anchors[i];

    if(anchor.getAttribute("name")==id)
    {

      if(direction=='forward')
        {
            var nextAnchor = anchors[i+1];
        }
        else
        {

          var nextAnchor = anchors[i-1];
        }
        if(nextAnchor.getAttribute("name")>0)
        {
            nextAnchor.click();
            break;
        }
    }
  }
}
Avatar billede roenving Novice
04. august 2004 - 13:37 #8
Muy bueno, det havde jeg faktisk også i tankerne, da jeg lavede den som en 'gå igennem alle'-ting ...

-- og 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