Avatar billede f5 Nybegynder
16. november 2004 - 18:57 Der er 21 kommentarer

akut javascript/Action Script problem!

Hej,

Jeg skal lave et sikkerheds check inde fra en flash fil som sikre mig at swf filen ligger på et bestemt domaine - ellers må den ikke vises.

Jeg har søgt lidt rundt og fundet dette script som skal ligge på frame 1 i min flash:

js="if((self.location.hostname!='www.mitDomaine.dk'&&self.location.hostname!='mitDomaine.dk')){top.location.replace('http://www.mitDomaine.dk');}";
getURL("java script:"+js);


Her bliver der checket om self.location.hostname er lig med det domine navn jeg vil have - hvis ikke redirekter den hele side.

Det fungere bare ikke og jeg ved ikke hvorfor og kender heller ikke nok til JS til at kunne debugge det. Er der nokgen som kan hjælpe!

/Michael
Avatar billede pyroman Nybegynder
16. november 2004 - 19:32 #1
Tror bare du kan nøjes med at skrive sådan her:

js="if(self.location.hostname!='mitDomaine.dk'){top.location.replace('http://www.mitDomaine.dk');}";
getURL("java script:"+js);

For hostname er ikke både www.mitdomæne.dk og mitdomæne.dk - men kun mitdomæne.dk
Ellers skal du for at være på den sikre side erstatte '&&' med '||'
Avatar billede f5 Nybegynder
16. november 2004 - 19:39 #2
ok, det vil jeg prøve...kunne du forklar emig hvordan javascriptet fungere i forhold til getURL - jeg viste slet ikke man kunne gøre sådan der...
Avatar billede nikolajdu Nybegynder
16. november 2004 - 19:49 #3
Hvad med sådan her :

if(this._url != "http://www.mitDomaine.dk/url.swf" || this._url != "http://mitDomaine/url.swf"){
    getURL("java script:top.location.replace('http://www.mitDomaine.dk/url.html')","_self");
}

læg mærke til at jeg tjekker på .swf plcaering og ved fejl henviser til html filen.
Avatar billede pyroman Nybegynder
16. november 2004 - 19:53 #4
jo - det havde jeg også tænkt på, men nu havde han lavet halvddelen af sin egen løsning selv ;)

Og når du nu er i gang med at ordne alt med flash funktioner nikolaj - hvorfor så ikke bruge denne i stedet for js-kaldet?:

getURL("http://www.mitDomaine.dk", "_self");

??
Avatar billede f5 Nybegynder
16. november 2004 - 19:55 #5
I dette script har jeg brug for at checke selve HTML dominet. Senere på commserveren checker jeg for swf ens domine - jeg SKAL lave begge. problemet er at jeg ikke rigitg kender til js i flash - eller i det hele taget. Men er ret sikker på at js'en er korrekt er bare ikke sikker på at det er den rigie måde at eksekvere det på....

Men js'en tester da for html'ens domine ikke?
Avatar billede pyroman Nybegynder
16. november 2004 - 19:59 #6
jo! Men du tjekker om domænet både er 'www.mitDomaine.dk' OG 'mitDomaine.dk' og det kan jo kun være en af delene - og det er så vidt jeg ved kun 'mitDomaine.dk'...

Jeg har testet mit forslag og det virker i hvert fald...
Avatar billede f5 Nybegynder
16. november 2004 - 19:59 #7
Jeg bliver nød til at tage hjem nu og arbejdere videre i morgen. Er her igen i morgen ;-) håber i kna hjælpe...
Avatar billede f5 Nybegynder
16. november 2004 - 20:01 #8
ok - jeg bliver nød til at teste i morgen men det lyder rigitgt...Tak
Avatar billede nikolajdu Nybegynder
16. november 2004 - 20:08 #9
Pyroman man kunne selvfølgelig nøjes med den. Fordelen ved at bruge javascript er at vi f.eks vil kunne springe ud af en frame/iframe - Det kan flash kun til en hvis grænse.

getURL("java script:if(top.location != self.location){parent.top.location.href='http://www.mitDomaine.dk/url.html'}","_self");
Avatar billede pyroman Nybegynder
16. november 2004 - 20:15 #10
getURL("side", "_top");

Virker den ikke i alle tilfælde??
Avatar billede nikolajdu Nybegynder
16. november 2004 - 20:26 #11
Som sagt ikke altid.
Avatar billede f5 Nybegynder
17. november 2004 - 10:44 #12
Nu har jeg fået den til at fungere sådanne her:
getURL("java script:if(self.location.hostname!='www.domian.dk'){parent.top.location.href='http://www.domian.dk'}", "_self"); - meget simpelt.

Underligt nok er der følgende problem: når jeg uploader til et andet doine er alt fint og jeg bliver redirected, men hvis jeg laver et kopi af HTML'en som henter swf'en fra min servere, så fungere det ikke - som om js ikke blivere eksikveret fra flashen når den bliver kørt gennem en lokal browser...????

Nogle som kender til det?

/Michael
Avatar billede nikolajdu Nybegynder
17. november 2004 - 12:22 #13
self.location.hostname!='www.domian.dk' er ikke nok du bliver minimum nød til at tjekke uden www. også, da www som standard faktisk slet ikke er påkrævet for brugeren at skrive. Det er noget serverne er sat op til. Test dit domæne for om du kan bruge begge og husk at det her aldrig vil dække f.eks subdomæner, så skal de også med...
Avatar billede f5 Nybegynder
17. november 2004 - 13:17 #14
Mit problem er at de js jeg har skrevet i flashen eksikvere ikke hvis browseren åbnes lokalt fra harddisken. Det ser ud til at flash KUN kan eksikvere js hvis browseren åbner en sider som ligger online...? Hvis der er nogen som har tid så røv at lav en hurtif test:

gem det her som en html lokalt:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled-3</title>
</head>
<body bgcolor="#ffffff">
<!--url's used in the movie-->
<!--text used in the movie-->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="Untitled-3" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="Untitled-3.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="Untitled-3.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="Untitled-3" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>

der kommer ingen alert. gå så ind på www.fla10com/scorTest - det er den samme swf der bliver hentet men her kommer der en alert
Avatar billede nikolajdu Nybegynder
17. november 2004 - 13:22 #15
Altså hvis ikke der er en browser så kan du heller ikke bruge javascript, det er jo browseren der fortolker dette.

Så må vi tilbage til en brændbar kombi.

if(this._url != "http://www.mitDomaine.dk/url.swf" || this._url != "http://mitDomaine/url.swf"){
    getURL("http://www.mitDomaine.dk/url.html","_top");
}
Avatar billede nikolajdu Nybegynder
17. november 2004 - 13:25 #16
Ah du skriver lokalt. Det burde nu virke alligevel du kan jo forsøge at se hvad bruseren ytpytter hvis du bare skriver : <script>alert(self.location+" - "+self.location.hostname)</script>
Avatar billede f5 Nybegynder
17. november 2004 - 13:29 #17
Det er gennem en browser - html dokumentet ligge bare lokalt. Når den gør det virker js ikke i flashen - helller ikke hvas du bare laver en almendelig alert. I den jeg har linket til forovens tår der f.eks. bare: getURL("java script:alert('alert')")

Dette virker KUN hvis html filen ligger online IKKE hvis den ligger lokalt. Som jeg ser det virker js SLET IKKE hvis html'en ligger lokalt.
Avatar billede nikolajdu Nybegynder
17. november 2004 - 13:41 #18
Javascriptet bør virke lokalt, men i f.eks service pack 2 til XP bliver visse ting blokeret.
Avatar billede f5 Nybegynder
17. november 2004 - 14:26 #19
Nikolajdu, har du prøvet at køre den html fil lokalt som jeg har pastede ind før? Er bare ved at blive sindsyg for selv om den blokerede burde jeg vel få en besked om det og det gør jeg ikke...
Avatar billede nikolajdu Nybegynder
17. november 2004 - 14:43 #20
Der komme en gul bjælke i toppen hvis active scipting blokeres.
Avatar billede pyroman Nybegynder
17. november 2004 - 15:56 #21
Altså et eller andet har du gjort galt - for js virker fint når du kører det fra en lokal fil!

Du må have noget rod i din flash - er det den rigtige fil du bruger? hentet fra det rigtige sted?

Og vi kan ikke teste din html - den henter jo flashen "Untitled-3.swf" fra samme mappe, og den fil har vi jo ikke
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