Avatar billede breon Nybegynder
05. maj 2004 - 21:00 Der er 5 kommentarer og
1 løsning

history.go(-1) kræver 2 klik

Jeg har følgende kode på et movieclip

this.onRelease = function() {
    getURL("java script:history.go(-1)");
};

Meningen er så, at når man klikker på dette movieclip skal browseren gå tilbage til den sidst besøgte side. Movieclippet skal fungere som en knap i et alm. HTML dokument, så det er altså ikke i flashfilen den skal gå tilbage, men i browseren.

Problemet er bare, at man skal klikke 2 gange før det sker noget. Jeg har bl.a. prøvet at lave et loop så koden udføres 2 gange, men uden held.
Jeg ved at andre også har haft problemer med dette, men har endnu ikke fundet nogen brugbare svar. Måske er der nogen herinde der har en løsning?
Avatar billede pyroman Nybegynder
05. maj 2004 - 21:47 #1
Det er et IE problem - for det virker i Mozilla. Det har noget med javascriptet at gøre - måske skal det skrives på en anden måde - jeg ved det ikke helt.
Avatar billede thedeathart Nybegynder
05. maj 2004 - 21:49 #2
prøv history.go(-2), men jeg ved ikke lige om det virker..
Avatar billede breon Nybegynder
05. maj 2004 - 22:49 #3
Det er pudsigt, for hvis man skriver javascript koden i et alm. HTML link, så virker det fint (også i IE), så jeg tror nærmere problemet ligger i Flash. Men andre javascript koder, som f.eks. at åbne et pop-up vindue, virker fint nok i Flash.

history.go(-2) har jeg også prøvet, og det virker desværre heller ikke.
Avatar billede breon Nybegynder
15. maj 2004 - 23:30 #4
Nå, siden der ikke var nogen herinde der kunne finde en løsning, måtte jeg selv ligge hovedet i blød, og fandt da også en løsning.

Det skal først lige siges at det ikke er et almnindelig website jeg skal lave, men et system der skal køre lokalt på et netværk i et motionscenter. Derfor er følgende løsning nok ikke brugbar til nettet.

Istedet for at bruge javascript, lavede jeg istedet en PHP funktion der tjekker hvilken side man er på. Derefter bruger jeg en switch til at bestemme hvilken url man så skal gå til. Samtidig rykker jeg nogle variabler med rundt, så man også får det rigtige indhold på de foregående sider.

Simpliciferet eksempel på kode:

--- PHP funktion ---
function getURL($id1, $id2) {
    $currentURL = basename($_SERVER['PHP_SELF']);
      switch ($currentURL) {
      case "side1.php":
        $url = "none";
          break;
      case "side2.php";
        $url = "side1.php?id1=".$id1."";
      break;
          case "side3.php":
        $url = "side2.php?id1=".$id1."";
      break;
          default:
        $url = "none";
      break;
    }
return $url;
}

--- Indsættelse af swf fil ---
Eks. på kode der flytter variabler ind flash filen.

<param name='movie' value='../gfx/btn_tilbage.swf?url=". getURL($catmu_id, $machine_id)."'>

--- Flash ---
I flash har jeg så i root'en et dynamisk textfelt med variablen url tilknyttet. Denne variables værdi overfører jeg så til en global variabel

_global.urllink = url;

og følgende kode ligger så inde i mit movieclip (tilbage knappen)

this.onRelease = function() {
        getURL (urllink, "_self");
};
Avatar billede breon Nybegynder
15. maj 2004 - 23:32 #5
Skulle have været:

--- Indsættelse af swf fil ---
Eks. på kode der flytter variabler ind flash filen.

<param name='movie' value='../gfx/btn_tilbage.swf?url=". getURL($id1, $id2)."'>
Avatar billede breon Nybegynder
16. maj 2004 - 21:21 #6
Hvis nogen skulle være interesseret, er jeg nu blevet gjort opmærksom på en bedre løsning, som også kan bruges på nettet. Jeg vil ikke gå for meget i detaljer, men det indebærer fscommand istedet for getURL. Det kan i hvert fald løse problemet med at klikke 2 gange, for at kunne bruge javascript funktionen history.back().

Læs mere her: http://moock.org/webdesign/flash/fscommand/
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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