Avatar billede jenz42 Nybegynder
28. april 2005 - 10:11 Der er 25 kommentarer

Ændre den aktuelle url

Jeg har en flashmenu, der optræder på mange forskellige asp sider. En knap i flashfilen skal så med getURL kunne linke med udgangspunkt i den aktueller URL. Den skal ændre *-us.asp til *-d.asp. Tilsvarende skal en anden knap ændre *-d.asp til *-us.asp

Hvordan gør man det?
Avatar billede -42- Nybegynder
28. april 2005 - 11:55 #1
Sæt den på når du embedder den i asp'en

embed src="flashfil.swf?myURL=loadthis.asp

Så kan du i flashen sige getURL(_root.myURL)
Avatar billede jenz42 Nybegynder
28. april 2005 - 12:01 #2
Kan jeg få dig til at uddybe det, -42- ?

Hvordan skifter man -us.asp ud med -d.asp?
Avatar billede -42- Nybegynder
28. april 2005 - 12:05 #3
Ahhh -Jeg troede, at knapperne skulle linke forskelligt...

Er det så ikke bare:
getURL("filnavn.asp", "_this");
Avatar billede jenz42 Nybegynder
28. april 2005 - 12:09 #4
Jeg er bange for at jeg har formuleret spørgsmålet så dårligt at ingen kan forstå det. Jeg prøver lige igen:

Alle asp sider ligger i to sprogversioner, som er navngivet henholdsvis *-us.asp og *-d.asp. Hvordan kan man fra flashmenuen skifte fra den ene til den anden sprogversion uden at kome væk fra det aktuelle emne?
Avatar billede -42- Nybegynder
28. april 2005 - 12:17 #5
så vil jeg kigge lidt på noget fscommand
Avatar billede jenz42 Nybegynder
28. april 2005 - 12:41 #6
Det lyder godt.
Jeg er stadig newbie, så det vil være fedt med go'e forklaringer.

-42-, Skal du forresten se "The Hitchhiker's Guide to the Galaxy"?
Avatar billede -42- Nybegynder
28. april 2005 - 13:06 #7
Klart!
Jeg kan ikke helt huske, hvad du skal gøre, men det virker sådan, at du ved hjælp af javascript kan aktivere nogle funktioner i din flash fil.

men prøv at google på fscommand javascript flash
Avatar billede jenz42 Nybegynder
28. april 2005 - 13:10 #8
Jeg vil give det et skud.
Jeg giver dig et ORdenligt slaw karma for dit tip.

Andre(s) forslag til løsninger på det her spørgsmål er herre velkomne.
Avatar billede jenz42 Nybegynder
28. april 2005 - 14:50 #9
Det her JavaScript virker som det skal, og er precist det, jeg er ude efter. Det skal så bare virke fra flash.


<script language="JavaScript">
<!--
var ChngLanguage = self.location.href

var GermanChngLanguage = ChngLanguage.replace("-us.asp", "-d.asp")
document.write ("<h3><a href=" + GermanChngLanguage+ ">German</a></h3>")

var EnglishChngLanguage = ChngLanguage.replace("-d.asp", "-us.asp")
document.write ("<h3><a href=" + EnglishChngLanguage + ">English</a></h3>")

//-->
</script>

Kan man så ikke udelade linien
document.write ("<h3><a href=" + GermanChngLanguage+ ">German</a></h3>")
og kalde det fra flashmenuen? Og hvordan gør man det?

Se evt. testsiden her:
http://www.ccieurope.com/test_menu/1-us.asp
Avatar billede pyroman Nybegynder
28. april 2005 - 15:29 #10
Ikke for noget... men ville det ikke være lidt smartere hvis du bare lagde sproget som en variabel i stien til asp'en??
fx
http://minside.dk/index.asp?lang=us

så behøver man heller ikke have to filer...
Avatar billede jenz42 Nybegynder
28. april 2005 - 15:34 #11
Givet vis, men nu er hele sitet altså bygget om den anden metode. Der ligger allerede to asp side pr. emne - Vel op imod 500 sider.

Og så synes jeg, det er smartere at ændre i én include-fil og én flashfil.
Avatar billede pyroman Nybegynder
28. april 2005 - 16:20 #12
Hehe - nåh det var ellers det man kunne have undgået...

Nåh - men har du mulighed for at smide en variabel på flash-embedden med det valgte sprog??
Altså fx på i *-us.asp:

<object .....>
  ...
  <param name="flashvars" value="language=us" />
  <embed src="minflash.swf?language=us" ..... />
</object>

Herved er der en variabel i flashen indeholdende sproget når den starter, hvorved man kan bruge følgende:

getURL("minside-"+_root.language+".asp");
Avatar billede jenz42 Nybegynder
28. april 2005 - 16:36 #13
Du har fat i noget af det rigtige, og aligevel ikke.
Det flashen ikke ved er det, du kalder "minside". Menuen findes i to versioner - en engelsk og en tysk, og den engelske kaldes på alle de engelske asp sider og den tyske på alle de tyske. Dvs, at din model vil virke, hvis flash blot fodres med oplysningen om "minside". I JavaScript betegnes det med self.location.href, men hvordan lægger man det ind som en flashvar?

Venlig hilsen
Avatar billede pyroman Nybegynder
28. april 2005 - 16:51 #14
Flash kan ikke finde ud af hvilken side den er embedded på af sig selv - men som i ovenstående kan du jo smide det på en variabel til flashen:

<object .....>
  ...
  <param name="flashvars" value="url=minside-us.asp" />
  <embed src="minflash.swf?url=minside-us.asp" ..... />
</object>
Avatar billede jenz42 Nybegynder
28. april 2005 - 16:58 #15
Jo, men jeg vil jo gerne undgå at skulle ind og rette i 500+ sider, så derfor ligger kaldet til flashfilen i én includefil, som alle de 500+ sider inkluderer. Derfor skal der i
<object .....>
  ...
<param name="flashvars" value="...
</object>
indsættes en variabel, der fortæller hvad min sidwe er. Og det kan Javascript finde ud af med self.location.href. Men jeg ved ikke om man kan sætte en JavaScript variabel ind dér.

Ic:
Avatar billede pyroman Nybegynder
28. april 2005 - 18:49 #16
Ok - det kan godt klares med javascript...

denne i <head>:

<script language="JavaScript" type="text/javascript">
function giveFlashURL(){
  var url = location.href;
  window.document.MINFLASH.SetVariable("html_url", url);
}
</script>


og så lige din flashen i html'en:


<object id="MINFLASH" ..>
  ...
  <embed name="MINFLASH" swliveconnect="true" ..../>
</object>


og på body:

<body onload="giveFlashURL();">


og i flash burde du så have en variabel med navn: html_url
Du kan fx skrive:

getURL(_root.html_url);
Avatar billede jenz42 Nybegynder
29. april 2005 - 10:07 #17
Det ser perfekt ud. Jeg er dog lidt i tvivl om et par ting (newbie tvivl)

1: Min embedkode ser i øjeblikket sådan ud:

<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="993" height="66" id="menuleft" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="/includes/menu/menu-us.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#999999" />
<embed src="/includes/menu/menu-us.swf" quality="high" bgcolor="#999999" width="993" height="66" name="menuleft" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

hvor sætter jeg din kode ind?
<object id="MINFLASH" ..>
  ...
  <embed name="MINFLASH" swliveconnect="true" ..../>
</object>

2: Hvad står "MINFLASH" for? Skal det i mit tilfælde erstattes med menu-us.swf, eller hvad?

3: Kan man så i flash skrive getURL("minside-"+_root.language+".asp");
_root.html_url
Avatar billede jenz42 Nybegynder
29. april 2005 - 10:09 #18
Hov jeg kom til at trykke på "send" knappen.

3: Kan man så i flash skrive getURL(_root.html_url-"d.asp"+"us.asp");
Avatar billede pyroman Nybegynder
29. april 2005 - 15:35 #19
Din html kan så se sådan ud:

<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="993" height="66" id="menuleft" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="/includes/menu/menu-us.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#999999" />
<embed src="/includes/menu/menu-us.swf" quality="high" bgcolor="#999999" width="993" height="66" name="menuleft" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" swliveconnect="true"/>
</object>



MINFLASH er navnet på din flash - den er i dit tilfælde "menuLeft", så din javascriptkode skal se således ud:

<script language="JavaScript" type="text/javascript">
function giveFlashURL(){
  var url = location.href;
  window.document.menuLeft.SetVariable("html_url", url);
}
</script>


I Flash kan du bruge variablen 'html_url' til hvad som helst - men husk den indeholder HELE stien til siden, fx "http://www.minside.dk/dir1/side1-us.asp" - så hvis du vil gå til samme side - bare på tysk, skal du altså modificere i tekststrengen....
Avatar billede jenz42 Nybegynder
29. april 2005 - 16:04 #20
Med getURL(_root.html_url); i flashen, som jo egentlig burde svare til et reload af siden, siger browseren "The page cannot be found", og adressefeltet skriver "http://www.ccieurope.com/test_menu/undefined"

Jeg har ikke kigget nærmere på det der med tekststrengen, for jeg ved skutte hvad en tekststræng er. Ic:

Jeg kigger nærmere på det på mandag. Ka' Du/I ha' en rigtig go' weekend. Tak for hjælpen ind til videre. Jeg gi'r et slaw karma for tålmodigheden.

(Jeg beklager min skøre jargon - jeg har lige tyllet en fredagspæls)
Avatar billede pyroman Nybegynder
02. maj 2005 - 15:58 #21
Har du husket <body onload="giveFlashURL();"> ??
Avatar billede jenz42 Nybegynder
03. maj 2005 - 09:55 #22
Hrmm Godt set, det havde jeg ikke med. Det er med nu, men der sker desværre stadig det samme.
Avatar billede jenz42 Nybegynder
03. maj 2005 - 12:48 #23
Så er problemet løst!

http://www.eksperten.dk/spm/614772
Avatar billede jenz42 Nybegynder
03. maj 2005 - 13:09 #24
Pyroman, hvis du vil have points for dit slid, så smid et svar. Evt kan du dele med 42 i et eller andet omfang. Hvad synes du er rimeligt?

Venligh hilsen
Avatar billede -42- Nybegynder
03. maj 2005 - 14:24 #25
Bare gi' det til pyroman :-)
Til gengæld kan han lige kigge på http://www.eksperten.dk/spm/614826
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