Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 21:10 Der er 58 kommentarer og
1 løsning

Hjælp tilgennemsyn/optimering af script

Jeg har lavet fælgende script... som med mindre jeg har taste eller tænkt helt tosset skule virker efter hensigt...
Men jeg er igen ørn til javascript og håber derfor noge vil gennemse det og komme med kommentare/forslg til evnt. forbedringer ol...

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

var pagewidth = 0;
if ( widthunit = 0){
normwidth = normwidth/100;
       
else (normwidth = normwidth);
    var ubwidth = document.body.offsetWidth;
    var pagewidth = ubwidth*normwidth;
        if ( pagewidth < mminwidth){
            pagewidth = mminwidth;
        }
        if ( pagewidth > mmaxwidth){
        pagewidth = mmaxwidth;
        }
    var ua = navigator.userAgent.toLowerCase();
        if(ua.indexOf('msie 5.1')>-1 && ua.indexOf('mac')>-1){
            if ( maciewidth = 1){
                pagewidth = mmaxwidth;
            }
            if ( maciewidth = 2){
                pagewidth = mminwidth;
            }
            if ( maciewidth = 3){
                pagewidth = ubwidth*normwidth;
            }           
        }
    elm = document.getElementById('plname').style;
    elm.width = pagewidth +"px";   
}

---------------------------
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 21:55 #1
Sammenligning er med ==, så IKKE:

if ( widthunit = 0){

Du kan ikke sætte betingelser på en else:

else (normwidth = normwidth);

og i samme linie: det betyder noget hvor du sætter semikolon.

Hmm, hvad er det dit "script skal gøre?
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:22 #2
Øhhh  ???

else (normwidth = normwidth);
og i samme linie: det betyder noget hvor du sætter semikolon.


else skulle da være god nok ??...f(år inge fejl)
Og hvad mener du med mit semikolon


Sammenligning er med ==, så IKKE:
Øhhh...
De virker da ellers ??
Skal alle skiftes ud med ==
Må indrømme du er den første der siger det....mange har ellers testet og set det intil nu
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:23 #3
Nå ja

>>Hmm, hvad er det dit "script skal gøre?

Det skal holde min og max str....
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:35 #4
Mener du sådan her

function JMFlexWidthControle() {

var widthunit = 0; action[1]
var normwidth = 801; action[2]
var mminwidth = 450; action[3]
var mmaxwidth = 600; action[4]
var plname = "controle"; action[5]
var maciewidth = 0; action[6]

var pagewidth = 0;
if ( widthunit == 0){
normwidth = normwidth/100;
       
if (normwidth == normwidth);
    var ubwidth = document.body.offsetWidth;
    var pagewidth = ubwidth*normwidth;
        if ( pagewidth < mminwidth){
            pagewidth = mminwidth;
        }
        if ( pagewidth > mmaxwidth){
        pagewidth = mmaxwidth;
        }
var ua = navigator.userAgent.toLowerCase();
        if(ua.indexOf('msie 5.1')>-1 && ua.indexOf('mac')>-1){
            if ( maciewidth == 1){
                pagewidth = mmaxwidth;
            }
            if ( maciewidth == 2){
                pagewidth = mminwidth;
            }
            if ( maciewidth == 3){
                pagewidth = ubwidth*normwidth;
            }           
        }
    elm = document.getElementById('plname').style;
    elm.width = pagewidth +"px";   
}

window.onload = JMFlexWidthControle;
window.onresize = JMFlexWidthControle;
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:36 #5
PS...overse de 6 første var
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 22:39 #6
Du kan ikke sætte semikolon efter en if:

if (normwidth == normwidth);

og hvorfor sammenligne en variabel med sig selv?

Hvis du sætter

  var maciewidth = 0;

er den 0 med mindre den bliver ændret, og så tester du alligevel på om om den er 1, 2 eller 3.

Nej, jeg forstår ikke noget.
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:42 #7
>> hvorfor sammenligne en variabel med sig selv?

Kunne ikke se ande måde en den eller sige hvis den er forskellig fra ??


maciewidth er nul som standart...men kan ændres undervejs derofr en variabel
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:45 #8
>Nej, jeg forstår ikke noget.

1. starte med 6 variable...(se delvist bort fra dem)

2. chekker windows str. og ser om pagewidth er <> en min og max

3. chekker for msie5.17 og sætter pagewidth derefter

4. sætter pagewidth
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:47 #9
>Du kan ikke sætte semikolon efter en if:


Har ellers altid hørt at en linie skal slutte aådan ??
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 22:52 #10
Nej, en if-sætning skal se sådan ud

  if (....noget....) {

  }

Linier skal ikke slutte med ; - men sætninger/statements skal.

Der er ingen grund til at sammenligne noget med sig selv, det vil altid være sandt.

Men maciewidth ændrer sig jo ikke.

Hvis du vil have kommentarer til noget, vil du så ikke godt vise den kode, du vil have kommentarer til, for ellers ved vi jo ikke hvad vi (delvist) skal se bort fra.
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 22:59 #11
Ahh...*S*...jamen det er da rigtigt...retter straks



--> Hvis du vil have kommentarer til noget, vil du så ikke godt vise den kode, du vil have kommentarer til, for ellers ved vi jo ikke hvad vi (delvist) skal se bort fra.

Jamen har da vist hele koden....
Det er kun selve variablernes værdi jeg mener man pt skal se nortfra da de kan ændre sig... (derfor de er lagt for sig sel,)
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:02 #12
Sådan ??

var pagewidth = 0;
if ( widthunit == 0){
normwidth = normwidth/100;
       
if (normwidth == normwidth){
        var ubwidth = document.body.offsetWidth;
    var pagewidth = ubwidth*normwidth;
            if ( pagewidth < mminwidth){
                pagewidth = mminwidth;
            }
            if ( pagewidth > mmaxwidth){
            pagewidth = mmaxwidth;
            }
        }

var ua = navigator.userAgent.toLowerCase();
        if(ua.indexOf('msie 5.1')>-1 && ua.indexOf('mac')>-1){
            if ( maciewidth == 1){
                pagewidth = mmaxwidth;
            }
            if ( maciewidth == 2){
                pagewidth = mminwidth;
            }
            if ( maciewidth == 3){
                pagewidth = ubwidth*normwidth;
            }           
        }
    elm = document.getElementById('plname').style;
    elm.width = pagewidth +"px";   
}
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 23:05 #13
Din

  if (normwidth == normwidth){

er stadig inderligt overflødig. Ellers er der vel ingen syntaksfejl. Om det så giver mening er en anden sag, jeg ikke kan udtale mig om ;)
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:11 #14
Hmmm...
Ja...kan egenligt godt se hvad du menet..... den kan fjernes... ;-)
Tak... den bliver fjernet

MHT resten... måske du ikke helt forstår hvad jeg vil...men du kan vel se hvad script gør ??... eææer retter ....bør gøre ???



Og mht optimering mener jeg bla at fjerne overflødige liner som den du påviste.. samt feks at gøre amdre kortere (hvis muligt)
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 23:13 #15
Der sker en slags udregning af en bredde, ja. Men om det er en fornuftig udregning er det mig ikke muligt at gennemskue. Men det kan du vel prøve.
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:16 #16
>Hvis du sætter   var maciewidth = 0;
er den 0 med mindre den bliver ændret, og så tester du alligevel på om om den er 1, 2 eller 3.

maciewidth er pr default 0 men kan ændresig under vejs...derfor...
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:22 #17
>>Men det kan du vel prøve.

scriptet virker skam fint nok (hvertfald de steder jeg har testet),,, eneste problem er mac IE 5.1x...derfor den del af scriptet...


Jeg vil bare gerne om mit script kan skrive bedre/kortere osv..
Og...som du fandt en af...fejl
og som du også så....overflødige ting---

Mht  værdierne af de variabler....så er det område lidt specielt.....når scriptet køre vil de alle blive skiftet ude med action[X], og den egenlige værdi vil blive genereret via noget C++ ...men det er en helt anden sag..
Så hvad jeg er ude på er at få mit script så godt som muligt, med mulighed for dette.

Da jeg er temmelig grøn i javascript spørger jeg derfor hvad i mener der kan gøre bedre i scriptet
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 23:28 #18
"virker skam fint nok" - hvis du mener det script du viste i selve spørgsmålet, så kan det ikke have virket "fint nok" med de fejl, der var i. Så du skal en tur rundt og teste igen. Jeg tror ikke, der i den seneste version er noget, der kan laves bedre.
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:29 #19
For at sige det groft så er mit script et forsøg på at lave en javascript version af følgende CSS

#sitesetup            { width:expression(document.body.clientWidth < 800? "450px": "auto" ); min-width: 450px; }
#sitesetup            { width:expression(document.body.clientWidth > 1024? "600px": "auto" ); max-width: 600px; }
Avatar billede olebole Juniormester
21. oktober 2005 - 23:31 #20
<ole>

Nu er det jo sådan at nogle kan lide datteren, mens andre vil have moderen - og preferencer ændrer sig i øvrigt med tiden - men hvis man er til shorthands, er dette måske en anelse mere sexy:

var pagewidth = 0;
if ( widthunit == 0){
    var ubwidth, pagewidth, ua;
   
    normwidth = normwidth/100;
    ubwidth = document.body.offsetWidth;
    pagewidth = ubwidth*normwidth;
    pagewidth = (pagewidth<mminwidth)? mminwidth : (pagewidth>mmaxwidth)? mmaxwidth : pagewidth;
    ua = navigator.userAgent.toLowerCase();
    if(ua.indexOf('msie 5.1')>-1 && ua.indexOf('mac')>-1){
        pagewidth = (maciewidth==1)? mmaxwidth : (maciewidth==2)? mminwidth : (maciewidth==3)? ubwidth*normwidth : pagewidth;
    }
    elm = document.getElementById('plname').style;
    elm.width = pagewidth +"px";   
}

Den væsentilgste anke i forhold til dit eget eksempel - udover den overflødige betingelse - er din indrykning. Jeg ville få små, grønne fluer bag øjenbrynene, hvis jeg skulle sidde og fedte rundt med sådan en kode.

Slip af med en seriøs fejlmulighed i din kode ... vær sirlig med din indrykning!
Dels undgår du at lave en masse fejl - dels springer dine fejl øjeblikkeligt i øjnene, hvis du alligevel skulle begå nogen - og sidst, men ikke mindst, kan du med stolthed aflevere den til en evt. koder, der skal overtage den. Han vil garanteret også finde den overskuelig og let at gå til  ;o)

/mvh
</bole>
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:33 #21
>>Så kan det ikke have virket "fint nok" med de fejl, der var i.

fatisk var der == i originalen...men dieforsvandt ved copy paste  ?? ....(må være en mac tegn ting, fik også en del underlige teng... så )... Kunne heller ikker forstå hovrfor du brokkede dig der...*G*... og nok derfor det har har virket for mig...*G*



>>Jeg tror ikke, der i den seneste version er noget, der kan laves bedre.

Det vil jeg tae som et kompliment...**S**
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 23:36 #22
Det eneste jeg kan tilføje er, at det er totalt spild af alles tid, at vise noget kode, som ikke den rigtige kode.

Indrykning og grønne fluer - har der været et godt tilbud på Frascati?  ;)
Avatar billede olebole Juniormester
21. oktober 2005 - 23:37 #23
- og så har jeg - udover indrykning - en anden lille 'pernittengryn' ting:
Jeg kan godt lide at erklære alle mine lokale variabler i første linje af en funktion. Det giver mig et godt overblik over, hvor skidtet kommer fra ... og jeg opdaterer konstant den linje, mens jeg koder (som regel står det meste der i forvejen fra pseudokoden, jeg har vænnet mig til at begynde større ting med)  :)
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:39 #24
Ole >>

*S*...vorfor vented jeg du ville blande dig....*G*


Flot script du har lavet btw... Copy paste det lige og ser om jeg fatter hvad du har lavet, ikke meget ved at bruge et script man ikke fatter...oki,... måske er det bedre...men jeg har sværdt ved at stå inden for noget jeg ikke forstår ;-) ... så tager lige et ekstra kik på din kode.... (ser rimligt forståelig ud *S*

Takker


>> Den væsentilgste anke i forhold til dit eget eksempel - udover den overflødige betingelse - er din indrykning.

Sory...tro halvdelen er fra min copy paste til her...(mac lave sjove tegn)
Og så holder jeg personligt meget af tab indrykninger...så har sat min WISIWYG til at lave dem ...*S*...(men de forsvinder ved opload...*S*)
Avatar billede olebole Juniormester
21. oktober 2005 - 23:40 #25
Frascati ... i vandgoblen ...?!??!!! Det ku' da godt være, det er en variant, der er værd at forsøge  ;D
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:41 #26
Ole >>  fra 21/10-2005 23:37:28

mener du noget ala

var widthunit = 0;
var normwidth = 80|1;
var mminwidth = 450;
var mmaxwidth = 600;
var plname = "controle";
var maciewidth = 0|1|2|3;


i starten ???

Disse vil blive indsat istedet for variablen via et pogram før oplad
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:42 #27
>> Det eneste jeg kan tilføje er, at det er totalt spild af alles tid, at vise noget kode, som ikke den rigtige kode.
Indrykning og grønne fluer - har der været et godt tilbud på Frascati?  ;)

Hvordan an det være tidsspild...??
For mig er det reet seriøst ???
Avatar billede olebole Juniormester
21. oktober 2005 - 23:43 #28
Det var nu egentlig dette, jeg tænkte på:

var pagewidth = 0;
if ( widthunit == 0){
    var ubwidth, pagewidth, ua;

- som burde have været:

var ubwidth, pagewidth, uapagewidth = 0;
if ( widthunit == 0){
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:43 #29
PS ...
Hvad er grønne fluer ???
Avatar billede olebole Juniormester
21. oktober 2005 - 23:44 #30
- heller ikke ... men så sådan da:

var ubwidth, pagewidth, ua, pagewidth = 0;
if ( widthunit == 0){
Avatar billede olebole Juniormester
21. oktober 2005 - 23:45 #31
(21/10-2005 23:43:58) >> tro mig ... det vil du ikke vide  :D
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 23:47 #32
Du siger jo, Jesper, at det ikke var den rigtige kode du viste i spørgsmålet. Måske ikke din skyld, men ligemeget: det er da spild af tid.

"Jeg har en syntaksfejl i min kode på line 7913, så her får I lige linie 1-10". Overdrivelse fremmer forståelsen!

Jeg har da brugt til på at rette "=" til "==", og det var så åbenbart ikke nødvendigt. Derfor.

Grønne fluer må være en ny måde at programmere på.
Avatar billede olebole Juniormester
21. oktober 2005 - 23:49 #33
bla = (BETINGELSE_A)? noget : nogetAndet;

- er det samme som:

if (BETINGELSE_A) {
  bla = noget;
} else {
  bla = nogetAndet;
}

Vil du lave en if/elseif/else, ser det sådan ud:

bla = (BETINGELSE_A)? noget : (BETINGELSE_B)? nogetAndet : nogetTredie;

- som er det samme som:

if (BETINGELSE_A) {
  bla = noget;
} else if (BETINGELSE_B) {
  bla = nogetAndet;
} else {
  bla = nogetTredie;
}

- for lige at forklare de shorthands, jeg brugte  :)
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:50 #34
Jod...det vil jeg gerne vide...*G*
Vil da altid lære...
Er det en fejl jeg laver ??

Jeg forstår ikke helt

var ubwidth, pagewidth, ua, pagewidth = 0

ubwidth, pagewidth, ua, kan og vil aldrig være 0 ???
Avatar billede jesper-moeller Nybegynder
21. oktober 2005 - 23:55 #35
>>Du siger jo, Jesper, at det ikke var den rigtige kode du viste i spørgsmålet.

Nej...sagde at vriablerne ville blive indsat pr automatic....koden er god nok .....


>>på line 7913

??

så sort er scripte altså ikke


underligt....får ingen fejl i nogen browser ??
Avatar billede olebole Juniormester
21. oktober 2005 - 23:58 #36
Du misforstår det med variablerne  :)
Når jeg skriver:
  var ubwidth, pagewidth, ua, pagewidth = 0
- er det det samme som:

var ubwidth;
var pagewidth;
var ua;
var pagewidth = 0;

Det, jeg godt kan lide er, at de er erklæret helt i toppen af en funktion. Om så det er på én eller flere linjer, er ligemeget - bare de står i toppen ... jeg skriver dem dog selv i én.

De eneste lokale variabler, jeg erklærer nede i en funktionskode på det sted, de skal bruges, er iteratorer:
  for (var i=0; i<noget; i++) {

Det er absolut en vanesag, men det giver mig personligt et godt overblik. Samtidig er det en nødvendighed i andre sprog ... f.eks. Visual Basic
Avatar billede erikjacobsen Ekspert
21. oktober 2005 - 23:58 #37
I spørgsmålet står der

  if ( widthunit = 0){

Så skriver du

  fatisk var der == i originalen...men dieforsvandt ved copy paste  ??

Jamen, så var koden jo ikke god nok. Jeg opgiver yderligere diskussion. Prøv at sove på det, og læs så igen hvad vi skriver.
Avatar billede jesper-moeller Nybegynder
22. oktober 2005 - 00:13 #38
Hmmm


sætter lige points op til 100 til hver ;-)
tålmodighed har i da...*S*

Starter lige forfra....

Har lavet scriptet til at søger for at en side har en vis min og max str...
Alt har indtil nu kørt uden scriptfejl ol... eneste fejl er en MSIE5.17 bug som jeg i scriptet har forsøgt at omgås...
dette er også den svageste part af scriptet.... for har ikke selv haft mulighed for at teste på  msie 5.2+

Jeg kunne have sat alle parameterne ind i scriptet fra starten, men ha vlagt at lave en liste der sætter værdien af disse, da de senerer vil blive sat via et andet pogram direkte istedet for variblerne...
(var widthunit = 0;
var normwidth = 80|1;
var mminwidth = 450;
var mmaxwidth = 600;
var plname = "controle";
var maciewidth = 0|1|2|3;) er midlertiddige settings...og kan alle være forskellige

Så selve scriptet heder egenligt;
var pagewidth = 0;
if ( widthunit = 0){
normwidth = normwidth/100;
var ubwidth = document.body.offsetWidth;
var pagewidth = ubwidth*normwidth;
    if ( pagewidth < mminwidth){
        pagewidth = mminwidth;
    }        if ( pagewidth > mmaxwidth){
pagewidth = mmaxwidth;
}
var ua = navigator.userAgent.toLowerCase();
if(ua.indexOf('msie 5.1')>-1 && ua.indexOf('mac')>-1){
if ( maciewidth = 1){
pagewidth = mmaxwidth;
}
if ( maciewidth = 2){
pagewidth = mminwidth;
}
if ( maciewidth = 3){
pagewidth = ubwidth*normwidth;
}           
}
elm = document.getElementById('plname').style;
elm.width = pagewidth +"px";   
}
window.onload = JMFlexWidthControle;
window.onresize = JMWidthControle;

(med nuværende rettleser)

Ole >>
Jeg vil kigge dybt i din version...er flot og lille....

Så mit spørgsmål er egenligt...kan mit script laves bedre til formålet...(Med muligehde for de givne varianter )...kan de enkelte liner i mit script laves bedre.... er der noget udeladt eller overflødigt (Tak til  erikjacobsen ;-) ... er der dele der ikke vil fungere...osv. osv...


Og så er der lige den med om MSIE5.2 vil blive berørt af MSIE5.1x delen.... dette skal jeg nok få opklaret ordenligt...indtil nu ser det ikke spdan ud
Avatar billede jesper-moeller Nybegynder
22. oktober 2005 - 00:22 #39
>>Jamen, så var koden jo ikke god nok

Unskylder at mit db  forsviner fatter ikke helt hvorfor,,,det er nu i min version

if ( maciewidth == 1){

er med t 2 =

hved ikke helt hvad der sker mht til det....
Avatar billede olebole Juniormester
22. oktober 2005 - 01:19 #40
Jeg synes, det er noget rod - og jeg kan stadig ikke se, hvad det er, du vil med scriptet ... specielt kan jeg ikke se, hvorfor body'ens offsetWidth er interessant  :)
Avatar billede jesper-moeller Nybegynder
22. oktober 2005 - 11:09 #41
>Jeg synes, det er noget rod

Ok...hvilken del er noget rod ??

>jeg kan stadig ikke se, hvad det er, du vil med scriptet

Jeg vil lave føglende CSS som javsrcipt istedet :
#sitesetup            { width:expression(document.body.clientWidth < 800? "760px": "auto" ); min-width: 760px; }
#sitesetup            { width:expression(document.body.clientWidth > 1024? "960px": "auto" ); max-width: 960px; }

>specielt kan jeg ikke se, hvorfor body'ens offsetWidth er interessant  :)

er jo nød til at kende winduet str. for at kunne sætte sidens str. til feks 80% ??
Avatar billede jesper-moeller Nybegynder
22. oktober 2005 - 12:16 #42
Har oploadet en live version af scriptet... så kan i måske bedre se hvad det er jeg forsøger
http://www.jart.dk/jgom/donweb/max-bred-test1.html

ole >> Dit kodeeksemple (21/10-2005 23:31:46) er lige noget af det jeg er ude efter...
bedre måder at skrive script på .... jeg skal "bare" lige forstå hvad du egenligt har lavet... :-)

Feks
var pagewidth = 0;
if ( widthunit == 0){
    var ubwidth, pagewidth, ua; 
    normwidth = normwidth/100;
Hvad laver var ubwidth, pagewidth, ua;  ??? pagewidth har vi lige sat, ubwidthog ua kommer senere i scriptet ??
og en anden ting der undre mig lidt
var pagewidth = 0; er den eneste med var foran... er var valgfri ???
Avatar billede roenving Novice
22. oktober 2005 - 23:53 #43
I javascript kan du sikre at en variabel er lokal ved at bruge en deklaration med var, ellers er javascript egentlig rasende ligeglad ...

-- derfor skal du netop altid dklarere dine variabler, så du har styr på deres scope !-)

var ubwidth, pagewidth, ua; deklarerer alle tre variable i en sætning ...
Avatar billede jesper-moeller Nybegynder
23. oktober 2005 - 04:36 #44
*S*.... hej roenving...velkommen her i min tråd...*S*

Tak for oplysningen...
er dog usikker på hvad du mener med lokal ?

Jeg har kigget meget på oles eksemple og har skrevet scriptet lidt om...
nu ser det sådanne ud

<script type="text/javascript"><!--
function JMFlexWidthControle() {
var widthunit = 0;
var normwidth = 80;
var mminwidth = 450;
var mmaxwidth = 600;
var plname = "controle";
var maciewidth = 0;

var pagewidth = 0;
if ( widthunit == 0){
normwidth = normwidth/100;
}

var ubwidth = document.body.offsetWidth;
var pagewidth =parseInt(ubwidth)*normwidth;
pagewidth = (pagewidth<mminwidth)? mminwidth : (pagewidth>mmaxwidth)? mmaxwidth : pagewidth;

var uawidth = navigator.userAgent.toLowerCase();
if(uawidth.indexOf('msie 5.1')>-1 && ua.indexOf('mac')>-1){
pagewidth = (maciewidth==1)? mmaxwidth : (maciewidth==2)? mminwidth : (maciewidth==3)? ubwidth*normwidth : pagewidth;
}

var nwidth = document.getElementById('controle').style;
nwidth.width =  pagewidth + "px";
}               
window.onload = JMFlexWidthControle;
window.onresize = JMFlexWidthControle;
//--></script>


Ser det fornuftigt ud ???

Hvis jeg forstår dig rigtigt bør jeg alså også nulstille "uawidth"  ,"ubwidth," og "pagewidth," ??
feks ændre starten til:
var normwidth = 80;
var mminwidth = 450;
var mmaxwidth = 600;
var plname = "controle";
var widthunit = 0;
var maciewidth, uawidth, ubwidth,  pagewidth,

???

De test jeg har lavet indikere at scriptet fungere som jeg ønsker... det jeg gerne vil er at optimere det mest muligt, og her er jeres oplysninger lige den slags jeg leder efter

en lille ekstra oplysning. ... Jeg har medvilje lagt alle variable i starten af scriptet, Da disse vil være forskellige fra site til site, og scriptet skal bruges til mange sites..... Hele den del vil blive genereret atomatisk og sat ind i scriptet (Den del er der styr på og det virker)... derfor har jeg lavet det på den måde


-
Avatar billede roenving Novice
23. oktober 2005 - 15:07 #45
-- den sidste oplysning er jo ret væsentlig, for ellers er der jo en tre-fire fuldstændig uforståelige ting !-)

Lokal variabel betyder, at den kun virker indenfor en funktion eller f.eks. løkke/iteration !-)

Hvis du lige studerer denne kode først, og så kører den igennem, vil du se hvor forskellen er !o]
Avatar billede roenving Novice
23. oktober 2005 - 15:08 #46
<script type="text/javascript">
var localVar = "Nu er jeg global";
alert(localVar + "\nGlobal 1");

lVar1("Parametre er altid lokale");

alert(localVar + "\nGlobal 2");

lVar2();

alert(localVar + "\nGlobal 3");

lVar3();

alert(localVar + "\nGlobal 4");

function lVar1(localVar){
  alert(localVar);
}

function lVar2(){
  alert(localVar);
}

function lVar3(){
  var localVar = "Her er jeg lokal";
  alert(localVar);
}

</script>
Avatar billede jesper-moeller Nybegynder
23. oktober 2005 - 15:56 #47
Roenving >>

Takker...spænende...men kan ikke se hvad/hvordan det kommer ind i billedet??
Det er slet ikke det jeg mente med min sidste oplysing...

Det er selve
var normwidth = 80;
var mminwidth = 450;
var mmaxwidth = 600;
var plname = "controle";
var widthunit = 0;
delen der automatisk bliver skrevet ind i scriptet (før opload)
Avatar billede jesper-moeller Nybegynder
23. oktober 2005 - 15:58 #48
Jeg kunne godt få den til at skrive hele molieviten... men noget nemmer kun at skrive de 6
Avatar billede jesper-moeller Nybegynder
23. oktober 2005 - 16:32 #49
Syntes det er lidt forvirende den kode du skriver,,, kan se den skal noget med 3 funktioner der henter oplysniger 4 steder (Global 4 1-4) ??

var localVar = "Nu er jeg global";
alert(localVar + "\nGlobal 1");
lVar1("Parametre er altid lokale");

Er den gloables parameter lokal ???

Og har svært ved at se hvorledes det skulle forbedre mit script ??
Please inlight me
Avatar billede roenving Novice
23. oktober 2005 - 16:38 #50
Det var for at illustrere lokale variabler, som du spurgte til, ikke et forsøg på at optimere dit script !-)

Du får 7 alerts, 4 kontrol-alerts navngivet med Global 1-4, og derimellem 3 alerts fra forskellige funktioner, som alle alerter en variabel med samme navn som den globale, men den første har en parameter, der hedder det samme, og er derfor lokal, den anden henviser bare til den globale og den sidste har sin egen lokale variabel ...

-- som det fremgår påvirkes den globale variabel ikke af, at der lokalt (i funktionerne !-) er variabler med det samme navn !o]
Avatar billede jesper-moeller Nybegynder
23. oktober 2005 - 17:19 #51
*S*...takker....tror jeg forstår nogenunde hvad det går ud på.... og jeg...kan se det kan være yderst praktisk i mange situationer :-)
For fuld forståelse skal jeg nok prøve at arbejde lidt mere konkret med det... men tror grund ideen er på plads.... takker for enu et lille guldkorn....

De variable jeg har i starten af scriptet er egenligt faste værdier der ikke vil ændre sig når siden køre, så jo. jeg kunne sætte dem direkte ind i scriptet.. men....
1. det er nemmere at ændre et sted en 5 undervejs i opbygningen
2. scriptet skal når det er færdigt laves til en action/funktion.... og så bliver alle de sætbare variabler skiftet ud med action[X]
. Så kan jeg, når jeg skal bruge scriptet blot intaste de paramete det skal have...og de bliver så indsat...
Da koderne til disse er lidt skumle er det ikke morsomt at lave scriptet fra bunden i det...men langt nemmere at lave scriptet på "almindelig" vis... og så ombygge det...
Da det vil blive et script jeg vil bruge en del gange vil det jovære lækkert at det er så godt som jeg nu kan få de til at være...derfor mine mange spørgsmål.... Det er sjovere at rette undevejs...end blive spurgt om hvorfor man har valgt så dårlig en løsning efter man har lavet siden ;-)
Avatar billede jesper-moeller Nybegynder
23. oktober 2005 - 17:24 #52
Selv er jeg efterhånden ganske godt tilfreds med scriptet (I kunne garentere lave noge meget smartere :-P ) har nogle forbedringer/flere muligheder i tankerne for scriptet... men det må blive en anden version en anden gang...


Så hvis i ikke har andre bemærkninger og ellers mener at det er iorden,  så smid et svar....*S*

I er begge til stor hjælp... hvad enten det angår ting jeg spørg om eller ting jeg ikke engang anede at jeg ikke viste ;-)
Avatar billede jesper-moeller Nybegynder
23. oktober 2005 - 17:25 #53
Alle 3 da....*G*....nu kan jeg heller ikke tælle mere...*G*
Avatar billede jesper-moeller Nybegynder
05. november 2005 - 18:20 #54
Nu må i ige se at få smidt lidt svar så jeg kan give nogle point...
Har været mig en lærerig tråd...så deler gerne ud :-)
Avatar billede roenving Novice
06. november 2005 - 05:50 #55
Oki '-)
Avatar billede jesper-moeller Nybegynder
11. november 2005 - 21:20 #56
Slet igen andre der vil have ???

roenving ....du bliver da tyk af alle min point ;-)
Avatar billede roenving Novice
13. november 2005 - 03:04 #57
-- jeg står jo osse li'e og mangler ...
Avatar billede jesper-moeller Nybegynder
13. november 2005 - 12:41 #58
Jamen det kan vi da ikke have....
så må du jo hellere få dem all ;-)
Avatar billede roenving Novice
13. november 2005 - 16:30 #59
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