Avatar billede jesper-moeller Nybegynder
24. juni 2006 - 18:58 Der er 8 kommentarer og
2 løsninger

bygge script ind i libery og tilføje function

Dagens (for mig) svære spørgsmål ??

Jeg har et script som normalt bruges på denne måde

--------------------------------------------------------------------------

<script type="text/javascript" src="fobjects.js"></script>
</head>
<body>
<div id="content">
This is replaced by fobjects.js
</div>
<script type="text/javascript"><!--
var so = new FObjects("tester.gif", "tester", "300", "300", "8", "#FF6600");
so.setAttribute('RedirectUrl', ' http://www.minside.dk/')
so.write("content");
//--></script>

--------------------------------------------------------------------------

JScriptet laver så <div id="content"> om efter de variabler

det jeg nu ønsker er at flytte selve "fobjects.js" fra sin egen fil ind i mit eget scriptlibery og kalde det "action FObject(){ scriptet } og starte det med <body onload="FObject();">

Og så bruget et andet script til at sætte variablerne. til dette har jeg lavet følgende

--------------------------------------------------------------------------
function JMFObject(action) {
// Required parameters:
containerdiv = action[1];
filurl = action[2];
objectid = action[3];
fwidth = action[4];
fhight = action[5];
fpversion = action[6];
backgcolor = "#"+action[7];
// Optional parameters:
expressinstall = action[8];
quality = action[9];
redirecturl = action[10];
redirecturl = action[11];

// Set SWFObject Standart Attribute:
var so = new FObject(filurl, objectid, fwidth, fhight, fpversion, backgcolor);
// Set RedirectUrl Attribute:
if(redirecturl != "(Empty Reference!)" || redirecturl != "(Empty_Reference!)" || redirecturl != "(EmptyReference!)" || redirecturl != "Empty Reference!" || redirecturl != "Empty_Reference!" || redirecturl != "EmptyReference!" || redirecturl != "#" || redirecturl != "" ){
    so.setAttribute('RedirectUrl', redirecturl );
}
    so.write(containerdiv);
}
--------------------------------------------------------------------------

Så sender jeg variablerne til mit script med denne
CSInit[CSInit.length] = new Array(Fobject,/*CMP*/ 'content',/*URL*/ '(Empty Reference!)','tester.gif',300,100,6,'000000',true,High,/*URL*/ '(Empty Reference!)',/*URL*/ '(Empty Reference!)');


Og nu kommer spørgsmålet så

Hvordan sender jeg de variabler vidre fra JMFObject() scriptet til FObject() scriptet ?
Eller kan jeg simpelthen bare foresætte under det jeg har lavet ? Altså bygge dem sammen ??


Håber mit spørgsmål giver mening, og at nogen kan hjælpe mig
Avatar billede mclemens Nybegynder
24. juni 2006 - 19:32 #1
Variablerne ryger med over ... men jeg kender ikke funktionen af det andet script så den sidste setAttibute og write funktion er lige deaktiveret i denne test...

[ Eller kan jeg simpelthen bare foresætte under det jeg har lavet ? Altså bygge dem sammen ?? ]
- Burde du kunne, men kender ikke resultatet af det du har lavet indtil videre - eller rettere ved ikke om den får tingene overført rigtigt / om funktionen virker ?


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function FObject(nr1,nr2,nr3,nr4,nr5,nr6){
alert(nr1+"\n"+nr2+"\n"+nr3+"\n"+nr4+"\n"+nr5+"\n"+nr6);
}
</script>

<script type="text/javascript">
var CSInit=new Array('Fobject','content','(Empty Reference!)','tester.gif',300,100,6,'000000',true,'High','(Empty Reference!)','(Empty Reference!)');

function JMFObject(action){



// Required parameters:
containerdiv = action[1];
filurl = action[2];
objectid = action[3];
fwidth = action[4];
fhight = action[5];
fpversion = action[6];
backgcolor = "#"+action[7];
// Optional parameters:
expressinstall = action[8];
quality = action[9];
redirecturl = action[10];
redirecturl = action[11];

// Set SWFObject Standart Attribute:
var so = new FObject(filurl, objectid, fwidth, fhight, fpversion, backgcolor);
// Set RedirectUrl Attribute:
if(redirecturl != "(Empty Reference!)" || redirecturl != "(Empty_Reference!)" || redirecturl != "(EmptyReference!)" || redirecturl != "Empty Reference!" || redirecturl != "Empty_Reference!" || redirecturl != "EmptyReference!" || redirecturl != "#" || redirecturl != "" ){
  //  so.setAttribute('RedirectUrl', redirecturl );
}
  //  so.write(containerdiv);
}
</script>

</head><body onload="JMFObject(CSInit);">

<div id="content">
This is replaced by fobjects.js
</div>

</body></html>
Avatar billede mclemens Nybegynder
24. juni 2006 - 19:33 #2
Umiddelbart er det måske bedst at integrere det i et samlet script med aktivering via window.onload istedet for det inline-tag ... men det afhænger jo altid af det resultat du ønsker at nå til i slutningen...
Avatar billede jesper-moeller Nybegynder
24. juni 2006 - 20:00 #3
[ jeg kender ikke funktionen af det andet script] ... den er at søge for at SWF file vise pr automatic (EOLAS problemet) Kan godt komme med hele det script hvis det hjælper ?

[Burde du kunne, men kender ikke resultatet af det du har lavet indtil videre - eller rettere ved ikke om den får tingene overført rigtigt / om funktionen virker ?]

Det jeg har lavet virke i de test jeg har lavet ... har lavet nogle alert og write test der viser at der rigtige resultalt kommer frem..
Min funktion er egenligt mangen til den originale
Forskellen er blot at variabel strenge kan sendes flere gange på  samme side med forskellige indstillinger..

de to ting jeg har tænkt på har været at foresætte med det script under.... eller "hente" det i starten af mit
Originalt bliver det loadet med siden og så når funktionen skal bruges sætter man script ind
<script type="text/javascript"><!--
var so = new FObjects("tester.gif", "tester", "300", "300", "8", "#FF6600");
so.setAttribute('RedirectUrl', ' http://www.minside.dk/')
so.write("content");
//--></script>
som så omskriver den <div id="content"> om , med de parametre der er i srciptet

Giver det mening ??
Avatar billede mclemens Nybegynder
24. juni 2006 - 20:20 #4
[ den er at søge for at SWF file vise pr automatic (EOLAS problemet) Kan godt komme med hele det script hvis det hjælper ? ]
- Ikke nødvendigt har ingen flash filer / bruger ingen flash...

[ Giver det mening ?? ]
Uhmm, den er lidt svær... Jeg kan ikke umiddelbart se fordelen i en ekstra funktion der blot ahr til hensigt at sende variablerne videre til den anden funktion - hvis du ikke skal bruge dem senere... (Det kommer selvfølgelig an på om du planlægger at aflæse værdien fra en skjult div/input felt på siden og så lave omkaldet derved...)

- Umiddelbart ser det ud som om at man bare kan kalde med:

window.onload=function(){
var so = new FObjects("tester.gif", "tester", "300", "300", "8", "#FF6600");
so.setAttribute('RedirectUrl', ' http://www.minside.dk/')
so.write("content");

var so2 = new FObjects("tester2.gif", "tester2", "100", "100", "3", "#FF6aaa");
so2.setAttribute('RedirectUrl', ' http://www.minside2.dk/')
so2.write("content");
}

(og så undlade den body onload og de ekstra objecter du overfører værdier med)
- men jeg er som sagt ikke sikker? ... der kommer sikkert en "js/flasher" forbi, der kan sige lidt mere, om du har behov for en ekstra funktion - jeg kan dog ikke lige se fordelen p.t. udfra den funktion det ekstra script skal have...
Avatar billede jesper-moeller Nybegynder
24. juni 2006 - 20:33 #5
[Jeg kan ikke umiddelbart se fordelen i en ekstra funktion der blot ahr til hensigt at sende variablerne videre til den anden funktion - hvis du ikke skal bruge dem senere... (Det kommer selvfølgelig an på om du planlægger at aflæse værdien fra en skjult div/input felt på siden og så lave omkaldet derved...)]

Det er fordi jeg er ved at ombygge scriptet til en action ;-)
Dvs at når man lave siden hiver man actionen ind og laver sine setting ... de bliver så skrevet i "CSInit[CSInit.length] = new Array(Fobject,/*CMP*/ 'content'..." som bliver sendt til mit script (eller vilket jeg nu beder den om) hvorefter den så bliver udført..

Meningen er altså at min funktion skal tage sig af at fordele/omsætte parameterne til den/de som scriptet skal bruge.
Jeg kunne godt søge for at den bare gjorde det i bodyen, men den vil fylde langt mindre ved at have den i script liberyet...
Jeg ved med andre ord ikke hvilket setting funktionen får..
Avatar billede mclemens Nybegynder
24. juni 2006 - 20:42 #6
[ Det er fordi jeg er ved at ombygge scriptet til en action ;-) ]
- Jamen så har det selvfølgelig en fordel, så kan du jo rette værdierne internt på siden, og så har du dit script der laver de object kaldet og object defineringen i et eksternt script. :o)

[ Jeg kunne godt søge for at den bare gjorde det i bodyen, men den vil fylde langt mindre ved at have den i script liberyet... ] Jeps, jo mindre inline desto bedre :)

[ Det jeg har lavet virke i de test jeg har lavet ... har lavet nogle alert og write test der viser at der rigtige resultalt kommer frem..
Min funktion er egenligt mangen til den originale
Forskellen er blot at variabel strenge kan sendes flere gange på  samme side med forskellige indstillinger.. ]
- Og når det virker så er det jo også helt fint :o)
Avatar billede jesper-moeller Nybegynder
07. november 2006 - 10:34 #7
Må hellere få lukket her *S*
mclemens > Smid et svar
Avatar billede mclemens Nybegynder
07. november 2006 - 17:29 #8
Hmm, kan ikke lige se at jeg egentlig hjalp ?
Her er lige et svar, men jeg synes at du burde
kaste et svar selv og beholde pointene ...
- Kan ikke selv se at jeg hjalp ...
Avatar billede jesper-moeller Nybegynder
07. november 2006 - 20:16 #9
Tjoo ... du forsøgte da ... men så deler vi bare *S*
Avatar billede mclemens Nybegynder
07. november 2006 - 20:35 #10
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