abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas maandag 29 november 2004 @ 14:29:02 #1
1972 Swetsenegger
Egocentrische Narcist
pi_23643673
Na php voor dummies wordt het nu tijd voor javascript voor dummies.
Ik ben een absolute leek met javascript, ik jat af en toe wat scripts en snap dan net genoeg om het met wat aanpassingen te kunnen gebruiken, maar wat meer kennis zou makkelijk zijn.

Wat ik wil. Ik wil tijdens het laden van een pagina, sommige elementen (div's) iets later dan de container background div het scherm in schuiven.

Dus het menu (bv) zie je de pagina inscrollen)
Iemand hints en tips om dit te realiseren? Met welke eventhandler pak ik dit aan en is het uberhaupt mogelijk?

[ Bericht 0% gewijzigd door Swetsenegger op 29-11-2004 14:52:28 ]
pi_23645199
je kunt functies gewoon onload aanroepen, het onload-event vind plaats direkt na het inladen van een hele pagina (incl. alle afbeeldingen hierop)
vervolgs kun je een simpel moveBy script aanroepen:

iets als
quote:
<script type="text/javascript">
function my_moveTo( elmN, y ) {
elm = document.getElementById( elmN )
newY = elm.offsetLeft
if (newY > y) {
newY = newY - 5
elm .style.left = newY
setTimeout( "my_moveTo( '"+elmN+"', "+y+" ) ", 250 )
}
}
function init() {
document.getElementById( 'menu' ).style.left = document.body.clientWidth
my_moveTo( 'menu', 50 )
}
window.onload = init
</script>
<style type="text/css">
DIV#menu {
position: absolute; top: 50px; left: 1000px; width: 250px; border: 1px solid red;
}
</style>
<div id="menu">menu-blah</menu>
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
  FOK!-Schrikkelbaas maandag 29 november 2004 @ 15:37:20 #3
1972 Swetsenegger
Egocentrische Narcist
pi_23645485
quote:
Op maandag 29 november 2004 15:26 schreef RM-rf het volgende:
je kunt functies gewoon onload aanroepen, het onload-event vind plaats direkt na het inladen van een hele pagina (incl. alle afbeeldingen hierop)
vervolgs kun je een simpel moveBy script aanroepen:

iets als
[..]
ik had inderdaad het vermoeden dat dit met de onload handler moest, echter begrijp ik je script niet helemaal. Waar roep je die functie nu aan? En waar geef ik de uiteindelijke locatie op van de div en waar de start locatie?

(ja ik ben echt een noob )

Met andere woorden, om er voor te zorgen dat ik er wat van leer en de javascript behndigden niet continue blijf lastig vallen met "*zucht*... lees de fucking manual"-vragen... Kan je het even regel voor regel uitleggen wat je doet?

Thanks
pi_23645666
het aanroepen van een functie onload kan gewoon door bv <dody onload="functienaam()"> te doen, maar ook in het script zelf door window.onload = functienaam (waarbij je dus geen variabelen door doorgeven, daarom mijn 'init' functie).

verder draait het script er een beetje om dat je via getElementById elementen aanspreekt en hiervan eerst een waarde opvraagt (via object.offsetLeft) en deze vervolgens aanpast wanneer hij groter is dan de variabele y...
hierna roept de functie zichzelf via een Timeout weer aan, via setTimeout(), de functie wordt dus meermaals herhaald zolang de linkerwaarde van het element groter is dan 'y'...

in mn voorbeeldscript-script wordt in de init-functie het menu-element eerst helemaal naar rechtsbzuiten de pagina gezet, waarna de functie my_moveTo het element in stappen van 5 pixels per kwartseconde naar links beweegt.
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
  FOK!-Schrikkelbaas maandag 29 november 2004 @ 15:53:26 #5
1972 Swetsenegger
Egocentrische Narcist
pi_23645877
quote:
Op maandag 29 november 2004 15:44 schreef RM-rf het volgende:
het aanroepen van een functie onload kan gewoon door bv <dody onload="functienaam()"> te doen, maar ook in het script zelf door window.onload = functienaam (waarbij je dus geen variabelen door doorgeven, daarom mijn 'init' functie).

verder draait het script er een beetje om dat je via getElementById elementen aanspreekt en hiervan eerst een waarde opvraagt (via object.offsetLeft) en deze vervolgens aanpast wanneer hij groter is dan de variabele y...
hierna roept de functie zichzelf via een Timeout weer aan, via setTimeout(), de functie wordt dus meermaals herhaald zolang de linkerwaarde van het element groter is dan 'y'...

in mn voorbeeldscript-script wordt in de init-functie het menu-element eerst helemaal naar rechtsbzuiten de pagina gezet, waarna de functie my_moveTo het element in stappen van 5 pixels per kwartseconde naar links beweegt.
Yep, ik zie het. Ik ging uit van van links naar rechts maar jij beweegt van rechts naar links.

De functie roep je aan zodra het document geopend wordt (window.onload) toch?

Waneer ik er nu voor wil zorgen dat je de container div al ziet en pas na een kleine pauze het element het scherm in gescrolled wordt, kan ik dit bereiken door de functie met een onload in de div zelf aan te roepen? Ik realiseer me dat dit maar een minimale pauze oplevert tov jou onload, maar het gaat me erom of ik een onload functie overal kan gebruiken zeg maar.
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 11:53:17 #6
1972 Swetsenegger
Egocentrische Narcist
pi_23710543
waarom werkt dit niet in firefox zodra ik er een doctype bovenzet (en wel in IE)

quote:

<html>
<head>
<title>move.layer</title>

<script type="text/javascript">

function init(){
if(document.getElementById){
obj = document.getElementById("menuDiv");
obj.style.left = 156;
}
}

function slideRight(){
if(document.getElementById){
if(parseInt(obj.style.left) < 255){
obj.style.left = parseInt(obj.style.left) + 10 + "px";
setTimeout("slideRight()",15);
}
}
}

function slideLeft(){
if(document.getElementById){
if(parseInt(obj.style.left) > 156){
obj.style.left = parseInt(obj.style.left) - 10 + "px";
setTimeout("slideLeft()",15);
}
}
}
</script>
<style type="text/css">
#menuDiv{

position:absolute;

left:156px;
top:148px;
width:110px;
text-align:right;
font-family: Arial, verdana, sans;
font-size:8pt;
z-index:2;
filter:alpha(opacity=90);-moz-opacity:0.90;
}
</style>
</head>

<body onLoad="init()" bgcolor="white">

<div id="menuDiv">
<a href="javascript:slideLeft()"><img src="image/left.gif" alt="arrow" border="0"/></a>
<a href="javascript:slideRight()"><img src="image/right.gif" alt="arrow" border="0" /></a>
<div style="position:relative; left:-17px; border-color:black; border-style:solid; border-width:1px 1px 0px 1px; background-color:#B8D3C8;">
<a href="#" onblur="slideLeft()">Wie?</a> </div>
<div style="position:relative; left:-17px; border-color:black; border-style:solid; border-width:1px 1px 0px 1px; background-color:#B8D3C8;">
<a href="#" onblur="slideLeft()">Wat?</a> </div>
<div style="position:relative; left:-17px; border-color:black; border-style:solid; border-width:1px 1px 0px 1px; background-color:#B8D3C8;">
<a href="#" onblur="slideLeft()">Hoe?</a> </div>
<div style="position:relative; left:-17px; border-color:black; border-style:solid; border-width:1px 1px 0px 1px; background-color:#B8D3C8;">
<a href="#" onblur="slideLeft()">Waarom?</a> </div>
<div style="position:relative; left:-17px; border-color:black; border-style:solid; border-width:1px; background-color:#B8D3C8;">
<a href="#" onblur="slideLeft()">Wanneer?</a> </div>
</div>
<div class="menu"><span onmouseover="slideRight()">Menu </span></div>


Dit werkt dus in zowel IE als FF. Zet ik er een doctype boven (1.0 transitional) werkt het nog steeds in IE, maar in FF (1.0) werkt de onmouseover en <a href="javascript:slideLeft()"><img src="image/left.gif" alt="arrow" border="0"/></a> niet meer
pi_23710642
omdat ik zo'n hekel heb aan Flash, heb ik eens aan een vriend laten zien dat je met JavaScript bijna hetzelfde kan: http://80.60.202.155/flashzut/. Na verloop van tijd had ik er geen zin meer in, maar de basis is er

(ik had er destijds echter geen image preloaders ingebouwd, dus missch moet je m 2x kijken voor alles in je cache zit)
Trotse poster van het 37000000ste bericht ^O^
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 12:34:02 #8
1972 Swetsenegger
Egocentrische Narcist
pi_23711465
iemand een idee waarom in FF javascript eventhandlers niet werken zodra er een doctype staat?
  donderdag 2 december 2004 @ 12:37:53 #9
105263 Litso
Interlectueel.
pi_23711551
quote:
Op donderdag 2 december 2004 11:57 schreef daReaper het volgende:
omdat ik zo'n hekel heb aan Flash, heb ik eens aan een vriend laten zien dat je met JavaScript bijna hetzelfde kan: http://80.60.202.155/flashzut/. Na verloop van tijd had ik er geen zin meer in, maar de basis is er

(ik had er destijds echter geen image preloaders ingebouwd, dus missch moet je m 2x kijken voor alles in je cache zit)
Wow, dat is best cool, als je dat iin javascript kan
"Dat is echt ontzettend zielig" ©
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 14:00:29 #10
1972 Swetsenegger
Egocentrische Narcist
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 15:07:17 #11
1972 Swetsenegger
Egocentrische Narcist
pi_23714787
Niemand enig idee?
pi_23714974
quote:
Op donderdag 2 december 2004 15:07 schreef Swetsenegger het volgende:
Niemand enig idee?

Geen idee of ik nu poep praat, maar ik kan me voorstellen dat als er iets niet helemaal juist gaat in het stukje JavaScript, dat een doctype met strict HTML handling dan de code niet uitvoert. Een eerste blik in je code liet niet iets fout zien, maar toen bedacht ik me dus dat het heel misschien noodzakelijk is om een eventhandler netjes af te sluiten met een boolean return value voor de afhandeling van de error status. Dit zou je dus kunnen testen door de boolean mee te geven in de return van de event handler of door de return met boolean achter de aanroep van je event handler te zetten.
Beter een baas onder je duim, dan tien bovenop
Trekt bij warm weer een poncho aan
  donderdag 2 december 2004 @ 15:15:24 #13
29223 giMoz
M-Power empowered
pi_23714990
Geeft ie errors? Of helemaal nix..
Het probleem van virussen spy- en adware is niet de browser maar bevind zich tussen toetsenbord en rugleuning.....
www.zoekopdekaart.nl
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 15:23:53 #14
1972 Swetsenegger
Egocentrische Narcist
pi_23715189
quote:
Op donderdag 2 december 2004 15:14 schreef Lucille het volgende:

[..]

Geen idee of ik nu poep praat, maar ik kan me voorstellen dat als er iets niet helemaal juist gaat in het stukje JavaScript, dat een doctype met strict HTML handling dan de code niet uitvoert. Een eerste blik in je code liet niet iets fout zien, maar toen bedacht ik me dus dat het heel misschien noodzakelijk is om een eventhandler netjes af te sluiten met een boolean return value voor de afhandeling van de error status. Dit zou je dus kunnen testen door de boolean mee te geven in de return van de event handler of door de return met boolean achter de aanroep van je event handler te zetten.

Nu in dummie taal
Wat moet ik waar mee geven?

quote:
Op donderdag 2 december 2004 15:15 schreef giMoz het volgende:
Geeft ie errors? Of helemaal nix..

In de console van FF kom ik geen enkele fout tegen
  donderdag 2 december 2004 @ 15:27:03 #15
29223 giMoz
M-Power empowered
pi_23715277
in je JS ook je
<!-- -->
weghalen.
Da hoeft dus niet.
Ook je functies een boolean terug laten geven.
dus:
return true;
aan het einde van je functie.
Het probleem van virussen spy- en adware is niet de browser maar bevind zich tussen toetsenbord en rugleuning.....
www.zoekopdekaart.nl
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 15:29:28 #16
1972 Swetsenegger
Egocentrische Narcist
pi_23715345
quote:
Op donderdag 2 december 2004 15:27 schreef giMoz het volgende:
in je JS ook je
<!-- -->
weghalen.
Da hoeft dus niet.

Die had ik later toegevoegd om te zien of dat verschil maakte, zal ze weer weghalen.

quote:

Ook je functies een boolean terug laten geven.
dus:
return true;
aan het einde van je functie.

Dus het wordt dit:

quote:

function init(){
if(document.getElementById){
obj = document.getElementById("menuDiv");
obj.style.left = 156;
return true;
}
}

function slideRight(){
if(document.getElementById){
if(parseInt(obj.style.left) < 255){
obj.style.left = parseInt(obj.style.left) + 10 + "px";
setTimeout("slideRight()",15);
return true;
}
}
}

function slideLeft(){
if(document.getElementById){
if(parseInt(obj.style.left) > 156){
obj.style.left = parseInt(obj.style.left) - 10 + "px";
setTimeout("slideLeft()",15);
return true;
}
}
}

?

of moet die return voor de laatste }
pi_23715630
quote:
Op donderdag 2 december 2004 15:23 schreef Swetsenegger het volgende:
Nu in dummie taal
Wat moet ik waar mee geven?



Op dit moment maak je een eventhandler op deze manier (voorbeeld, geen directe copy):

HTML deel:
onblur="doeJeDing()"

en dan in JS:
function doeJeDing() {

bla bla

return;
}

Ofwel, funcie doeJeDing() geeft geen boolean status terug (alleen een return zonder waarde) aan de eventhandler onblur. Sommige JS functies kunnen daar niet zo goed tegen en willen graag een boolean return zien (return true of return false). Dit kan je dus in de functie doeJeDing() zetten, zodat je in HTML krijgt:
onblur="return doeJeDing();"

wat ook kan is de return in je HTML stukje zetten bij de aanroep van de onblur event handler. Dat kan op twee manieren:
onblur="doeJeDing(); return false;"

Bovenste voorbeeld is het beste want dankan je in je eventhandler zowel true als false doorgeven (waardoor je netjes kan controleren of iets werkt en fouten kan afvangen), de onderste methode forceert een vaste boolean return waarde (in dit geval false), waardoor je nooit helemaal zeker bent van het resultaat in je event functie, maar er wel altijd een goede return waarde uit je eventhandler onblur komt.

Het enige waar ik nu over twijfel is of je bij succes een true of een false moet meegeven.
Ik dacht dus een false, vergelijkbaar met C programma's waarbij een 1 een foutstatus oproept en een 0 foutloos is. Maar pin me er niet op vast.
Beter een baas onder je duim, dan tien bovenop
Trekt bij warm weer een poncho aan
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 15:48:52 #18
1972 Swetsenegger
Egocentrische Narcist
pi_23715796
quote:
Op donderdag 2 december 2004 15:42 schreef Lucille het volgende:

[..]



Op dit moment maak je een eventhandler op deze manier (voorbeeld, geen directe copy):

HTML deel:
onblur="doeJeDing()"

en dan in JS:
function doeJeDing() {

bla bla

return;
}

Ofwel, funcie doeJeDing() geeft geen boolean status terug (alleen een return zonder waarde) aan de eventhandler onblur. Sommige JS functies kunnen daar niet zo goed tegen en willen graag een boolean return zien (return true of return false). Dit kan je dus in de functie doeJeDing() zetten, zodat je in HTML krijgt:
onblur="return doeJeDing();"

wat ook kan is de return in je HTML stukje zetten bij de aanroep van de onblur event handler. Dat kan op twee manieren:
onblur="doeJeDing(); return false;"

Bovenste voorbeeld is het beste want dankan je in je eventhandler zowel true als false doorgeven (waardoor je netjes kan controleren of iets werkt en fouten kan afvangen), de onderste methode forceert een vaste boolean return waarde (in dit geval false), waardoor je nooit helemaal zeker bent van het resultaat in je event functie, maar er wel altijd een goede return waarde uit je eventhandler onblur komt.

Het enige waar ik nu over twijfel is of je bij succes een true of een false moet meegeven.
Ik dacht dus een false, vergelijkbaar met C programma's waarbij een 1 een foutstatus oproept en een 0 foutloos is. Maar pin me er niet op vast.


O...kee. Ik denk dat ik begrijp wat je bedoelt, maar waar moet ik die return nu concreet in mijn script zetten? En moet ik dan nog wat aanpassen aan het HTML deel?
pi_23715961
Ik zie dat je in je JS functies slideLeft() en slideRight() al een return true hebt staan, dus nu moet je nog bij het aanroepen van die functies de return zetten:

onblur="return slideLeft();"

Idem voor de slideRight() functie aanroep. Ik weet dus, zoals gezegd, alleen niet of je functies dus een return true; of een return false; moeten meegeven voor het juiste resultaat. Disclaimer: ik weet zelfs niet of dit je probleem gaat oplossen.
Beter een baas onder je duim, dan tien bovenop
Trekt bij warm weer een poncho aan
  FOK!-Schrikkelbaas donderdag 2 december 2004 @ 15:59:33 #20
1972 Swetsenegger
Egocentrische Narcist
pi_23716078
tot mijn grote spijt moet ik bekenen dat een tweaker het opgelost heeft:

quote:

function init(){
if(document.getElementById){
obj = document.getElementById("menuDiv");
obj.style.left "156px";
}
}


kortom, bij de init 'px' toevoegen aan de value
  FOK!-Schrikkelbaas vrijdag 3 december 2004 @ 22:38:55 #21
1972 Swetsenegger
Egocentrische Narcist
pi_23748875
Wederom een vraag over dit scriptje.
In dit scriptje werkt de functie op een divje met als id 'menuDiv'. Op 1 pagina kan ik die dus maar 1 keer toepassen.

Hoe verbouw ik dit nu zo dat ik die slide functie voor meerdere divs kan aanroepen?
pi_23749446
quote:
Op vrijdag 3 december 2004 22:38 schreef Swetsenegger het volgende:
Wederom een vraag over dit scriptje.
In dit scriptje werkt de functie op een divje met als id 'menuDiv'. Op 1 pagina kan ik die dus maar 1 keer toepassen.

Hoe verbouw ik dit nu zo dat ik die slide functie voor meerdere divs kan aanroepen?


function slideRight(obj){
if(document.getElementById){
if(parseInt(obj.style.left) < 255){
obj.style.left = parseInt(obj.style.left) + 10 + "px";
setTimeout("slideRight()",15);
return true;
}

sliderecht aanroepen als:
slideRight(document.getElementById("idvanDiv"));

of als je hem aanroept vanuit het object zelf uit een event:

<div onclick="slideRight(this)">...</div>

(bedoel je dat?)
Trotse poster van het 37000000ste bericht ^O^
  FOK!-Schrikkelbaas vrijdag 3 december 2004 @ 23:17:03 #23
1972 Swetsenegger
Egocentrische Narcist
pi_23749700
quote:
Op vrijdag 3 december 2004 23:04 schreef daReaper het volgende:

[..]

function slideRight(obj){
if(document.getElementById){
if(parseInt(obj.style.left) < 255){
obj.style.left = parseInt(obj.style.left) + 10 + "px";
setTimeout("slideRight()",15);
return true;
}

sliderecht aanroepen als:
slideRight(document.getElementById("idvanDiv"));

of als je hem aanroept vanuit het object zelf uit een event:

<div onclick="slideRight(this)">...</div>

(bedoel je dat?)

Thanks, ik had 'm al met logisch nadenken en googlen:

quote:

function init(name){
if(document.getElementById){
obj = document.getElementById(name);
obj.style.left = "136px";
}
}

<td onmouseover="init('menu1');slideRight()">


[ Bericht 27% gewijzigd door Swetsenegger op 03-12-2004 23:22:54 ]
  FOK!-Schrikkelbaas maandag 6 december 2004 @ 16:29:49 #24
1972 Swetsenegger
Egocentrische Narcist
pi_23801381
Heeft iemand een javascript waarmee je de hoogte van het browsercanvas achterhaalt?

(dus niet scherm resolutie, maar daadwerkelijk de hoogte in pixels van het content gedeelte van het broser scherm?
pi_23802311
-edit: gevonden!-
Werkt vrij cross-browser meen ik

var width = window.innerWidth;
if (!width)
  width = document.body.clientWidth;

var height = window.innerHeight;
if (!height)
  height = document.body.clientHeight;

[ Bericht 41% gewijzigd door daReaper op 06-12-2004 17:37:52 ]
Trotse poster van het 37000000ste bericht ^O^
pi_23834033
Ik heb het volgende script om een veld op extentie te controleren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
function validate()
{
toegestaan = new Array("mid","jpg","gif")

bestandsnaam = document.upload.upload.value
extentie = bestandsnaam.substr(bestandsnaam.length-3,3)
validate = 1
for (i = 0; i < toegestaan.length; i++){
   if(extentie != toegestaan[i]){
      validate = 0
   }
}

if (validate == 0)
   alert("Deze extentie(" + extentie + ") is niet bruikbaar voor mobiele telefoons.")
   return false

}
</script>

Het wordt aangeroepen door:
onsubmit="return validate()" in de <form>

Het script werkt op zich wel. Maar na de 2e keer drukken op de knop valideerd ie niet meer en submit ie dus meteen. Hoe kan ik dit oplossen?
pi_23836991
validate() returnt altijd false
en extensie is met een s
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_23837298
quote:
Op woensdag 8 december 2004 18:13 schreef SuperRembo het volgende:
validate() returnt altijd false
en extensie is met een s
Nee hoor. Als ik bijv een .mid file pakt dan submit ie gewoon. Bij een .exe krijg ik een error. Maar als je bijv 2x op de button klikt dan submit ie altijd
Test het anders maar. Zie sig voor link.
pi_23838254
Ja hoor. validate() returnt altijd false. De versie die je nu online hebt staan roept validate() alleen nooit aan.

Maar ALS je de functie validate() een keer aanroept dan bestaat ie daarna niet meer. validate is dan namelijk 0 of 1. Week typed scipttalen, wat zijn ze toch leuk
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_23842363
edit: accolade vergeten in regel 19

[ Bericht 82% gewijzigd door Da_Koen op 08-12-2004 23:40:24 ]
pi_23843810
Ook ff een (newbie) vraagje: waarom worden javascript functies vaak opgeroepen met
<a href= javascript: void(null); Onclick=javascript: hier_de_functie(parameter);>

Waarom niet gewoon met <a href=javascript: hier_de_functie();> ?
pi_23845118
quote:
Op woensdag 8 december 2004 22:10 schreef Da_Koen het volgende:
Hoe kan ik het nou oplossen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>
<script type="text/javascript">

function validate() {
   var toegestaan = new Array("mid","jpg","gif");

   var bestandsnaam = document.getElementById('upload').value;
   var parts = bestandsnaam.split('.');
   var extensie = parts[parts.length-1];

   var isValid = false;

   for (var i = 0; i < toegestaan.length; i++) {
         if (extensie == toegestaan[i]) {
            isValid = true;
            break;
         }
   }

   if (!isValid) {
      alert("Deze extensie(" + extensie 
         + ") is niet bruikbaar voor mobiele telefoons.");
   }

   return isValid;
}

</script>
</head>
<body>
<form enctype="multipart/form-data" method="post">
   <input type="file" name="upload" id="upload"><br>
   <input type="submit" value="uploaden maar!" 
      onclick="return validate()">
</form>
</body>
</html>

Er stonden geen accolades bij de laatste if, zodat de functie altijd false returnde.
De functie validate veranderde zichzelf in 0 of 1, en kon daardoor dus maar 1x aangeroepen worden.
document.upload.upload.value werkt niet in Firefox. Vervangen door document.getElementById().
Ik heb de controle omgedraaid, de extensie is niet toegestaan, tenzij hij voorkomt in de lijst toegestane extensies.

Je moet op de server natuurlijk ook nog controleren of het allemaal wel klopt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_23942985
ik heb 2 variabelen in javascript, namelijk screen.width en screen.height en deze wil ik in 2 php variabelen x en y zetten, hoe krijg ik dit voor elkaar??
pi_23943128
Ah zo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // output the geometry variables
  echo "Screen width is: ". $_GET['width'] ."<br />\n";
  echo "Screen height is: ". $_GET['height'] ."<br />\n";
} else {
  // pass the geometry variables
  // (preserve the original query string
  //  -- post variables will need to handled differently)

  echo "<script language='javascript'>\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
           . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?> 


Jammer dat t niet anders kan...
pi_23999068
Nog maar een keer een vraagje want daar is dit topic voor.

1
2
3
4
5
6
7
8
function check(form){
   if(form.naam.value != '' && form.bericht.value != ''){
      form.submit();
   }
   else{
   alert('Je hebt niet alles goed ingevuld');
   }
}


Hier hoort een form bij, er moet gecontroleerd worden of 2 velden zijn ingevuld, als dat zo is moet hij het form submitten. Alleen dat doet hij niet, er komt alleen "Error on page" in de statusbalk te staan.... iemand enig idee wat ik fout doe?
pi_23999302
Ik weet niet wat dat is met mij maar iedere keer zit ik uren met een probleem en dan post ik het hier en binnen 2 minuten heb ik het zelf opgelost..... Er zat ergens anders iets fout in mn script..
  FOK!-Schrikkelbaas dinsdag 28 december 2004 @ 19:28:58 #38
1972 Swetsenegger
Egocentrische Narcist
pi_24260153
1
2
3
function timer() {
  setTimeout("slideLeft()", 3000);
}


Heel simpele functie, alleen wil ik dat hij bij een onmouseover onderbroken wordt.
Hoe doe ik dat?
  FOK!-Schrikkelbaas dinsdag 28 december 2004 @ 20:55:05 #39
1972 Swetsenegger
Egocentrische Narcist
pi_24262136
Ik ben een stap verder:
1
2
3
4
var idle;
function timer() {
idle=setTimeout("slideLeft()", 3000);
}


<div onmouseout="timer();" onmouseover="cleartimeout(idle);">

Dit geeft 'idle' is undefined Maar dat snap ik niet. Ik heb idle toch buiten de functie gedefinieerd?
pi_24262613
Ik krijg de melding 'Object wordt verwacht'. In dit geval kent ie 'cleartimeout' niet, aangezien het 'clearTimeout' is.
Met een hoofdletter T dus
  FOK!-Schrikkelbaas dinsdag 28 december 2004 @ 21:29:44 #41
1972 Swetsenegger
Egocentrische Narcist
pi_24263021
quote:
Op dinsdag 28 december 2004 21:12 schreef _Jeffrey_ het volgende:
Ik krijg de melding 'Object wordt verwacht'. In dit geval kent ie 'cleartimeout' niet, aangezien het 'clearTimeout' is.
Met een hoofdletter T dus
eh nee hoor...., in xhtml mogen er geen hoofdletters in tags, etc meer.
onMouseOver is dus ook gewoon onmouseover en functioneert allemaal prima.

object expected krijg je wel wanneer je hier en daar een quotje teveel of te weinig hebt
  FOK!-Schrikkelbaas dinsdag 28 december 2004 @ 21:37:37 #42
1972 Swetsenegger
Egocentrische Narcist
pi_24263198
Ok, ik ben een enorme lul.

Mijn scriptje werkt fantastisch op 'algemeen.php'... ware het niet dat ik al de hele avond op 'index.php' het resultaat aan het bekijken ben
pi_24263435
quote:
Op dinsdag 28 december 2004 21:29 schreef Swetsenegger het volgende:

[..]

eh nee hoor...., in xhtml mogen er geen hoofdletters in tags, etc meer.
onMouseOver is dus ook gewoon onmouseover en functioneert allemaal prima.
Javascript != XHTML
cleartimeout zal echt niet werken. clearTimeout wel.

Daarbij zijn event-handlers in (X)HTML iets anders dan in javascript.
In javascript moeten event-handlers altijd lower-case geschreven worden (een uitzondering in JS).
objectReferentie.onmouseover = function(){ alert('test'); }
werkt dus wel, maar dit niet:
objectReferentie.onMouseover = function(){ alert('test'); }
  FOK!-Schrikkelbaas dinsdag 28 december 2004 @ 21:59:45 #44
1972 Swetsenegger
Egocentrische Narcist
pi_24263781
quote:
Op dinsdag 28 december 2004 21:46 schreef _Jeffrey_ het volgende:


cleartimeout zal echt niet werken. clearTimeout wel.
Het werkt fantastisch

-edit- nope je hebt gelijk
Omdat ik op de verkeerde page zat te kijken heb ik het ongeveer 300 keer veranderd, de code is nu

1
2
3
4
5
6
7
8
<script type="text/javascript">
var idle;
function timer() {
idle=setTimeout("slideLeft()", 750);
}

</script>
<div onmouseout="timer();" onmouseover="clearTimeout(idle);">
  FOK!-Schrikkelbaas donderdag 30 december 2004 @ 17:02:01 #45
1972 Swetsenegger
Egocentrische Narcist
pi_24300884
Ik heb een script welke net als php's GET info uit de url haalt en wel dat wat achter de ? staat:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function getValue(varname)
{
  // First, we load the URL into a variable
  var url = window.location.href;

  // Next, split the url by the ?
  var qparts = url.split("?");

  // Check that there is a querystring, return "" if not
  if (qparts.length == 0)
  {
  var niets='uk.txt';
  return niets;
  }

  // Then find the querystring, everything after the ?
  var query = qparts[1];

  // Split the query string into variables (separates by &s)
  var vars = query.split("&");

  // Initialize the value with "" as default
  var value = "";

  // Iterate through vars, checking each one for varname
  for (i=0;i<vars.length;i++)
  {
    // Split the variable by =, which splits name and value
    var parts = vars[i].split("=");

    // Check if the correct variable
    if (parts[0] == varname)
    {
      // Load value into variable
      value = parts[1];

      // End the loop
      break;
    }
  }

  // Convert escape codes
  value = unescape(value);

  // Return the value
  return value;
}

var file = getValue("link");


Maar dit gedeelte

1
2
3
4
5
6
7
8
9
  // Next, split the url by the ?
  var qparts = url.split("?");

  // Check that there is a querystring, return "" if not
  if (qparts.length == 0)
  {
  var niets='uk.txt';
  return niets;
  }


Werkt niet.
Dit zou dus bij en url ZONDER get info 'uk.txt' terug moeten geven, maar dat gebeurt niet.
Waar ga ik fout?
pi_24302172
'foo'.split('?').length geeft 1

Verder geeft window.location.search meteen de seach string. Die begint alleen wel met een '?', die moet je er zelf afknippen.

[ Bericht 22% gewijzigd door SuperRembo op 30-12-2004 18:30:06 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 30 december 2004 @ 18:57:16 #47
1972 Swetsenegger
Egocentrische Narcist
pi_24302815
quote:
Op donderdag 30 december 2004 18:24 schreef SuperRembo het volgende:
'foo'.split('?').length geeft 1

Verder geeft window.location.search meteen de seach string. Die begint alleen wel met een '?', die moet je er zelf afknippen.
Maar in dit geval staat er dus helemaal geen ? in de url...

dus 'index.php?taal=uk.txt' werkt prima, maar bij index.php verwacht ik dus 'uk.txt' terug en dat gebeurt dus niet.

Aangezien in het laatste geval er niet te splitten valt op ? zou logischerwijs qpart==0 toch waar zijn?
pi_24302960
Nee. Als je 'foo' split op '?' dan krijg je een array met 1 element, namelijk 'foo'.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 30 december 2004 @ 19:35:53 #49
1972 Swetsenegger
Egocentrische Narcist
pi_24303597
quote:
Op donderdag 30 december 2004 19:05 schreef SuperRembo het volgende:
Nee. Als je 'foo' split op '?' dan krijg je een array met 1 element, namelijk 'foo'.


Ik heb me de tering gezocht
  FOK!-Schrikkelbaas vrijdag 31 december 2004 @ 13:22:30 #50
1972 Swetsenegger
Egocentrische Narcist
pi_24318766
waarom wordt dit in FF 1.0 geen klikbare link (juiste tekst staat er wel, ook onderstreept als zijnde een url, maar klikken gaat niet) en onder IE wel?

1<script type="text/javascript">document.write('<a class="twee" href="status1.htm?link=' + language + '" target="iframe">' + (showText(0)) +'</a>')</script>
pi_24321887
Hier in FF 1.0 werkt het gewoon goed.
Misschien staat er een layer over de link heen ofzo? heb je een online voorbeeldje?
pi_24321925
tvp nog een dummies reeks
pi_24322336
Zie http://www.n321.com/poc.html

Waarom werkt dit allemaal geweldig in Gecko en IE, maar niet in Opera?

1
2
3
4
5
6
7
8
9
10
11
function Add() {
   var optgroup = document.getElementById('optgroup');
   var select = document.getElementById('select');
   element = document.createElement("option");
   element.setAttribute("value", 1);
   element.innerHTML = "Testing";
   optgroup.appendChild(element);
   
   document.getElementById('h').value = optgroup.getElementsByTagName("option").length;
   
}
  FOK!-Schrikkelbaas vrijdag 31 december 2004 @ 16:34:33 #54
1972 Swetsenegger
Egocentrische Narcist
pi_24322556
quote:
Op vrijdag 31 december 2004 16:02 schreef _Jeffrey_ het volgende:
Hier in FF 1.0 werkt het gewoon goed.
Misschien staat er een layer over de link heen ofzo? heb je een online voorbeeldje?
Nee, 't is intranet

Layer, hmz zou kunnen het staat in een container, welke 2 divs bevat, waarvan 1 relative.
Maandag kan ik pas weer kijken ... Ik weet nu in ieder geval dat de javascript goed is
pi_24325531
quote:
Op vrijdag 31 december 2004 16:25 schreef Arjan321 het volgende:
Zie http://www.n321.com/poc.html

Waarom werkt dit allemaal geweldig in Gecko en IE, maar niet in Opera?
Het lijkt een Opera bug te zijn. Zelfs als je de innerHTML van het hele select element opvraagt nadat het option element geplaatst is, lijkt het gewoon op de goede plaats in het select element te staan, maar het wordt gewoon niet zichtbaar. Option elementen toevoegen aan het select element werkt wel goed

Je zou een bug report bij Opera in kunnen dienen, misschien dat je daar andere ook mee helpt

Ik dacht het op te kunnen lossen door de innerHTML van het select element te vernieuwen door "select.innerHTML = select.innerHTML" te gebruiken. Maar dat slikt Opera niet (dat gebeuren er hele vage dingen). Soms crash ie zelfs
pi_24325622
Ja, dat heb stiekem al gedaan.. eigelijk verkeerde volgorde....

maar daar ben ik dan wel mooi klaar mee, want dit zou ik toch wel graag even werkende willen hebben in Opera
pi_24325660
Ik vraag me af of je het element kan clonen (cloneNode, zoek maar eens op Google), daarna het oude select element te verwijderen, en de nieuwe te plaatsen. Wel een omweg, maar je moet wat...

[ Bericht 0% gewijzigd door _Jeffrey_ op 31-12-2004 20:04:11 ]
pi_24326030
Hè, helemaal geweldig! Dan pikt ie um wel!

De code voor de mensen die dit toch nooit zullen tegenkomen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function Add() {
   var optgroup = document.getElementById('optgroup');
   var select = document.getElementById('select');
   var container = document.getElementById('containeri');
   element = document.createElement("option");
   element.setAttribute("value", 1);
   element.innerHTML = "Testing";
   optgroup.appendChild(element);
   
   if (window.opera) {
      clone = select.cloneNode(true);
      container.removeChild(select);
      container.appendChild(clone);
   }
}
  FOK!-Schrikkelbaas donderdag 13 januari 2005 @ 17:08:05 #59
1972 Swetsenegger
Egocentrische Narcist
pi_24548646
Is er een javascript equivalent van php's htmlentities?
pi_24549163
quote:
Op donderdag 13 januari 2005 17:08 schreef Swetsenegger het volgende:
Is er een javascript equivalent van php's htmlentities?
je kunt wel een script maken dat alle tekst-waardes omzet naar hun hex-karakter (via de Stringmethode.toString(16))
1<&bléüh>

wordt dan
1 <&bléüh>


dmv code als bv:
1
2
3
4
5
6
7
8
9
10
11
var my_variabele = '<&bléüh>'
var string_output=''   
var temp_var   
for( var i=0; i < my_variabele.length; i++ )
{
   temp_var = my_variabele.charAt( i );
   temp_var = temp_var.charCodeAt(0);
   temp_var = '&#'+ temp_var.toString(16) + ';'
   string_output += temp_var;
}
return string_output


Maar dat kan ook een onpraktische situatie zijn, als het voor een CMS is, is het eerder aan te raden om sowieso alle input via html_entities te laten gaan en gebruikers te verbieden zelf direkt html in te voeren, hooguit misschien bepaalde standaard-waardes er voorheen uit te filteren, daarmee behoud je een betere controle over de input van gebruikers
(juist binnen een CMS is het een zeker risico om mensen volledig het recht te geven direkt HTML in te voeren)

[ Bericht 2% gewijzigd door RM-rf op 13-01-2005 18:02:51 ]
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
  FOK!-Schrikkelbaas donderdag 13 januari 2005 @ 18:46:04 #61
1972 Swetsenegger
Egocentrische Narcist
pi_24550177
quote:
Op donderdag 13 januari 2005 17:47 schreef RM-rf het volgende:

[..]

je kunt wel een script maken dat alle tekst-waardes omzet naar hun hex-karakter (via de Stringmethode.toString(16))
[ code verwijderd ]

wordt dan
[ code verwijderd ]

dmv code als bv:
[ code verwijderd ]

Maar dat kan ook een onpraktische situatie zijn, als het voor een CMS is, is het eerder aan te raden om sowieso alle input via html_entities te laten gaan en gebruikers te verbieden zelf direkt html in te voeren, hooguit misschien bepaalde standaard-waardes er voorheen uit te filteren, daarmee behoud je een betere controle over de input van gebruikers
(juist binnen een CMS is het een zeker risico om mensen volledig het recht te geven direkt HTML in te voeren)
helaas is het een embedded systeem waarbij er geen ruimte is voor php of ander serverside oplossingen. Alleen client side scripting.

Het betreft ook geen invoer, maar een fixed tekst van ongeveer 400 regels. Dus zet ik nu maar handmatig alle ö, ü, è, î, ñ om naar de entity waarden ... voor elke taal
pi_24572513
vraagje aan de JS experts:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function cloack(waarde)
{
 if(waarde == "yes")
    {
      document.getElementById('layer1').style.visibility = 'hidden';
      document.getElementById('layer1').style.display = 'None';
      document.getElementById('layer2').style.visibility = 'visible';
      document.getElementById('layer2').style.display = 'Block';
      document.getElementById('command').style.display = 'None';
   }
 else if(waarde == "no")
    {
      document.getElementById('layer2').style.visibility = 'hidden';
      document.getElementById('layer2').style.display = 'None';
      document.getElementById('layer1').style.visibility = 'visible';
      document.getElementById('layer1').style.display = 'Block';
      document.getElementById('command').style.display = 'None';
   }
 else
    {
      document.getElementById('layer2').style.visibility = 'hidden';
      document.getElementById('layer2').style.display = 'None';
      document.getElementById('layer1').style.visibility = 'hidden';
      document.getElementById('layer1').style.display = 'None';
      document.getElementById('command').style.display = 'None';
   }
}


is er een manier om dit efficienter te doen??? of niet?
ik gebruik een if, else if, else script omdat ik in de dropdown box 3 waardes heb: ja, nee en blank (de standaard waarde)
pi_24581753
- dubbel -
Trotse poster van het 37000000ste bericht ^O^
pi_24581792
quote:
Op vrijdag 14 januari 2005 23:39 schreef mschol het volgende:
vraagje aan de JS experts:
[ code verwijderd ]

is er een manier om dit efficienter te doen??? of niet?
ik gebruik een if, else if, else script omdat ik in de dropdown box 3 waardes heb: ja, nee en blank (de standaard waarde)
1
2
3
4
5
6
7
function cloack(waarde) {
document.getElementById("layer1").style.visibility = waarde == "yes" ? 'visible' : "hidden";
document.getElementById("layer1").style.display = waarde == "yes" ? 'block' : "none";
document.getElementById("layer2").style.visibility = waarde == "no" ? 'visible' : "hidden";
document.getElementById("layer2").style.display = waarde == "no" ? 'block' : "none";
document.getElementById('command').style.display = 'None';
}


probeer het zo eens (niet getest)
Trotse poster van het 37000000ste bericht ^O^
pi_24583736
Een element met display=none wordt niet gerenderd. Het heeft dus geen zin om het daarna nog op visiblity=hidden te zetten.
En cloak is zonder ck.

1
2
3
4
5
function cloak(waarde) {
   document.getElementById('layer1').style.display = waarde == 'yes' ? 'block' : 'none';
   document.getElementById('layer2').style.display = waarde == 'no' ? 'block' : 'none';
   document.getElementById('command').style.display = 'none';
}
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_24671098
1
2
3
4
5
6
7
<input type="checkbox" name="en_aanvang" checked 
onClick="Toggle('agenda_nieuw_aanvang')"> Aanvang: <input type="text" 
name="agenda_nieuw_aanvang" maxlength="10"> uur<br/>

<input type="checkbox" name="en_prijs" checked 
onClick="Toggle('agenda_nieuw_prijs')"> Prijs: ¤<input type="text" 
name="agenda_nieuw_prijs" maxlength="5"><br/>


Ugh, mijn schrale beetje javascriptkennis laat me weer in de steek. Wat ik wil is op zich niet zo moeilijk leek me. Als op de checkboxen 'en_aanvang' of 'en_prijs' geklikt wordt, wordt respectievelijk 'agenda_nieuw_aanvang' disabled/enabled, of 'agenda_nieuw_prijs' disabled/enabled. Ik heb echter meerdere pogingen gedaan om de "Toggle"-functie te schrijven, maar ik kom er niet uit. En het moet zo makkelijk zijn. Kan iemand me even uit de brand helpen?

Dit werkt iig niet
1
2
3
4
5
6
7
8
9
<script language="Javascript">
function Toggle(elID) {
   if(document.getElementById(elID).style.disabled == true) {
      document.getElementById(elID).style.disabled = false;
   } else {
      document.getElementById(elID).style.disabled = true;
   }
}
</script>
pi_24671666
Disabled is niet een eigenschap van style, dus style weghalen en eht zal werken
1document.getElementById(elID).disabled
pi_24671681
quote:
Op vrijdag 21 januari 2005 16:32 schreef Heliospan het volgende:

[ code verwijderd ]

Ugh, mijn schrale beetje javascriptkennis laat me weer in de steek. Wat ik wil is op zich niet zo moeilijk leek me. Als op de checkboxen 'en_aanvang' of 'en_prijs' geklikt wordt, wordt respectievelijk 'agenda_nieuw_aanvang' disabled/enabled, of 'agenda_nieuw_prijs' disabled/enabled. Ik heb echter meerdere pogingen gedaan om de "Toggle"-functie te schrijven, maar ik kom er niet uit. En het moet zo makkelijk zijn. Kan iemand me even uit de brand helpen?

Dit werkt iig niet
[ code verwijderd ]
1
2
3
<script language="Javascript">
document.getElementById(elID).disabled = document.getElementById(elID).disabled == true ? false : true;
</script>


Volgens mij is "disabled" geen CSS property, maar hoort het bij het element direct. Probeer het zo eens (niet getest)
Trotse poster van het 37000000ste bericht ^O^
pi_24671843
Ach, ik ben zo achterlijk af en toe Bedankt beide!
pi_24672492
Om nog even verder te borduren op hetzelfde probleem:
1
2
3
4
5
6
7
8
9
function Toggle(elID) {
   if(document.getElementById(elID).disabled == true) {
      document.getElementById(elID).disabled = false;
     document.getElementById(elID).style.backgroundColor = "#ffffff";
   } else {
      document.getElementById(elID).disabled = true;
     document.getElementById(elID).style.backgroundColor = "#aaaaaa";
   } 
}


Dit werkt prima in IE. Maar in Firefox gebeurt er helemaal niets, niet disabled en geen andere achtergrondkleur. Werkt Firefox niet met getElementById ofzo?
pi_24673630
Wat voor element probeer je te disabelen? Volgens de specs van W3C kan dat alleen bij: BUTTON, INPUT, OPTGROUP, OPTION, SELECT en TEXTAREA.

Jouw code werkt bij mij in FF prima met een input text element. Maar zo zou ik 't doen (wat overzichtelijker, makkelijker te debuggen en uit te breiden)
1
2
3
4
5
6
7
8
9
10
11
function Toggle(id) {
   var el = document.getElementById(id);
   if (!el) return;
   if (el.disabled) {
      el.disabled = false;
      el.style.backgroundColor = '#fff';
   } else {
      el.disabled = true;
      el.style.backgroundColor = '#aaa';
   }
}
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_24673851
Ik probeer een input-veld te disabelen... Ik heb hem hier online staan: http://dev.chillosophy.nl/sites/jaydee.net/?type=agenda

Ik zie vast iets over het hoofd

-edit-
Sjongejonge. GetElementByID... Internet Explorer had het fout moeten weergeven, omdat ik alleen een name="bladiebla" had, maar dat wordt in IE ook geaccepteerd als ID blijkbaar. Maar goed, id="bladiebla" toegevoegd en het werkt
pi_24674393
Moet wel even zeggen dat FireFox een prachtige javascript console heeft, die, zolang je niets al te vreemd doet, een foutmelding geeft wat er fout gaat in het script (Tools -> Javascript Console)
pi_24674623
quote:
Op vrijdag 21 januari 2005 19:41 schreef Arjan321 het volgende:
Moet wel even zeggen dat FireFox een prachtige javascript console heeft, die, zolang je niets al te vreemd doet, een foutmelding geeft wat er fout gaat in het script (Tools -> Javascript Console)
Inderdaad een stuk duidelijker dan "Object Expected", wat IE 9 op de 10x zegt

Javascript Console zit overigens niet bij de minimale installatie, let daar even op.

[ Bericht 1% gewijzigd door daReaper op 21-01-2005 19:58:53 ]
Trotse poster van het 37000000ste bericht ^O^
pi_24675208
Daar hoort natuurlijk ook de Webdeveloper Toolbar bij
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zaterdag 22 januari 2005 @ 18:46:37 #76
1972 Swetsenegger
Egocentrische Narcist
pi_24692173
De volgende image swap doet het prima in I.E.
De onmouseover doet het in FF ook probleemloos, maar bij de onmouseout wordt bij ELKE link welke een onmouseover heeft uitgevoerd, de onmouseout uitgevoerd.

1
2
3
4
5
6
7
8
9
10
 <body>
<img name="home" border="0" src="image/static.gif" width="14px" height="14px">
<a href="home.htm" onmouseover="document.home.src='image/on.gif';playSound(0)" onmouseout="document.home.src='image/off.gif'">home</a><br />
<img name="occassion" border="0" src="image/static.gif" width="14px" height="14px">
<a href="occassion.htm" onmouseover="document.occassion.src='image/on.gif';playSound(0)" onmouseout="document.occassion.src='image/off.gif'">occassion</a><br />
<img name="aanbieding" border="0" src="image/static.gif" width="14px" height="14px">
<a href="aanbieding.htm" onmouseover="document.aanbieding.src='image/on.gif';playSound(0)" onmouseout="document.aanbieding.src='image/off.gif'">aanbieding</a><br />
<img name="bestellen" align=middle src="image/static.gif" width="14px" height="14px">
<a href="bestellen.htm" onmouseover="document.bestellen.src='image/on.gif';playSound(0)" onmouseout="document.bestellen.src='image/off.gif'">bestellen</a><br />
</body>


Beetje vaag verhaal, maar dit maakt het misschien duidelijker.

Ander probleem, het volgende script zou 'crossbrowser' wavjes moeten laten horen bij events. In IE doet hij het, in gecko niet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var aySound = new Array();
aySound[0] = "image/rollover01.wav";

document.write('<BGSOUND ID="auIEContainer">')
IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0;
NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
ver4 = IE||NS? 1:0;
onload=auPreload;

function auPreload() {
if (!ver4) return;
if (NS) auEmb = new Layer(0,window);
else {
Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>";
document.body.insertAdjacentHTML("BeforeEnd",Str);
}
var Str = '';
for (i=0;i<aySound.length;i++)
Str += "<EMBED SRC='"+aySound[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"
if (IE) auEmb.innerHTML = Str;
else {
auEmb.document.open();
auEmb.document.write(Str);
auEmb.document.close();
}
auCon = IE? document.all.auIEContainer:auEmb;
auCon.control = auCtrl;
}
function auCtrl(whSound,play) {
if (IE) this.src = play? aySound[whSound]:'';
else eval("this.document.embeds[whSound]." + (play? "play()":"stop()"))
}
function playSound(whSound) { if (window.auCon) auCon.control(whSound,true); }
function stopSound(whSound) { if (window.auCon) auCon.control(whSound,false); }


Iemand een idee?

[ Bericht 1% gewijzigd door Swetsenegger op 22-01-2005 19:01:15 ]
  FOK!-Schrikkelbaas zondag 23 januari 2005 @ 10:01:03 #77
1972 Swetsenegger
Egocentrische Narcist
pi_24703364
Met niet-animated gifjes werkt het wel goed. Het is dus een bug in FireFox

Gefeliciteerd met je vondst
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_24706248
quote:
Ja die.

De simpelste workaround is je off.gif vervangen door een statisch gifje.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_24707602
Ik heb een kleine workaround ervoor gevonden. Het werkt nog steeds niet perfect in Firefox, maar in IE/Opera kan je dan tenminste bewegende pijltjes behouden..

In firefox speelt ie 1x de animatie af, daarna is het plaatje voorbij geweest en doet ie het dus in een schok.. de code:
1
2
3
<span style="background-image: url('image/static.gif');background-repeat: no-repeat;padding-left: 15px;">
<a href="#" onmouseover="this.parentNode.style.backgroundImage='url(\'image/on.gif\')'" onmouseout="this.parentNode.style.backgroundImage='url(\'image/off.gif\')'">home</a>
</span>
pi_24710618
Maak 'm dan helemaal met CSS. In FF krijg je geen bewekende pijltjes, in IE wel.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
<title></title>
<style type="text/css">
a {
   padding-left: 20px;
   background-image: url('off.gif');
   background-repeat: no-repeat;
   background-position: 0% 50%;
}
a:hover {
   background-image: url('on.gif');
}
</style>
</head>
<body>

<a href="">Foo</a><br>
<a href="">Bar</a><br>
<a href="">Baz</a><br>

</body>
</html>
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 23 januari 2005 @ 19:39:13 #84
1972 Swetsenegger
Egocentrische Narcist
pi_24710955
quote:
Op zondag 23 januari 2005 11:47 schreef SuperRembo het volgende:
Met niet-animated gifjes werkt het wel goed. Het is dus een bug in FireFox

Gefeliciteerd met je vondst
Dat is godverdomme al de tweede keer dat ik tegen een gecko bug aanloop en workarounds voor MOZILLA moet verzinnen (in plaats van voor IE) (de vorige is het scrollwheel in overflow divs. Ondertussen opgelost in nightly's)
  FOK!-Schrikkelbaas zondag 23 januari 2005 @ 19:44:45 #85
1972 Swetsenegger
Egocentrische Narcist
pi_24711057
Andere vraag. Bestaat er een DHTML mogelijkheid om div's te roteren?

Op google vind ik nietecht een oplossing
pi_24723758
quote:
Op zondag 23 januari 2005 19:44 schreef Swetsenegger het volgende:
Andere vraag. Bestaat er een DHTML mogelijkheid om div's te roteren?

Op google vind ik nietecht een oplossing
nee, dan zou je eerder met SVG (Scalable Vector Graphics, een W3C-standaard voor vector-gebaseerde afbeeldingen, in markup format) moeten werken, deze kent transform-attributen met een rotate-functie
Mozilla kent wel de mogelijkheid om zowel XHTML, MathML en SVG te combineren en door elkaar te gebruiken

maar explorer ondersteund dit niet, explorer kent wel de mogelijkheid om WML (een proprietair MS-formaat voor vectoren) of proprietaire css-filters toe te passen, die teksten laten roteren:
http://msdn.microsoft.com(...)e/filters/matrix.asp

maar een cross-browser oplossing is er niet.
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
  FOK!-Schrikkelbaas maandag 24 januari 2005 @ 15:32:12 #87
1972 Swetsenegger
Egocentrische Narcist
pi_24724850
quote:
Op maandag 24 januari 2005 14:16 schreef RM-rf het volgende:

[..]

nee, dan zou je eerder met SVG (Scalable Vector Graphics, een W3C-standaard voor vector-gebaseerde afbeeldingen, in markup format) moeten werken, deze kent transform-attributen met een rotate-functie
Mozilla kent wel de mogelijkheid om zowel XHTML, MathML en SVG te combineren en door elkaar te gebruiken

maar explorer ondersteund dit niet, explorer kent wel de mogelijkheid om WML (een proprietair MS-formaat voor vectoren) of proprietaire css-filters toe te passen, die teksten laten roteren:
http://msdn.microsoft.com(...)e/filters/matrix.asp

maar een cross-browser oplossing is er niet.
Dit vond ik op google inderdaad.

Iemand nog een idee over deze? Werkt niet onder gecko
quote:
Op zaterdag 22 januari 2005 18:46 schreef Swetsenegger het volgende:Ander probleem, het volgende script zou 'crossbrowser' wavjes moeten laten horen bij events. In IE doet hij het, in gecko niet.
[ code verwijderd ]

Iemand een idee?
pi_24724966
quote:
Op maandag 24 januari 2005 15:32 schreef Swetsenegger het volgende:

Iemand nog een idee over deze? Werkt niet onder gecko
[..]
Het script dat je postte is uit de Netscape4 tijd (navigatoir.plugins['LiveAudio] en werken met New Layer()-methods, dat is allemaal document.layers troep)

volgens mij kun je gewoonweg de explorer methode toepassen, ook voor gecko en andere browsers
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
  FOK!-Schrikkelbaas maandag 24 januari 2005 @ 16:01:35 #89
1972 Swetsenegger
Egocentrische Narcist
pi_24725250
quote:
Op maandag 24 januari 2005 15:40 schreef RM-rf het volgende:

[..]

Het script dat je postte is uit de Netscape4 tijd (navigatoir.plugins['LiveAudio] en werken met New Layer()-methods, dat is allemaal document.layers troep)

volgens mij kun je gewoonweg de explorer methode toepassen, ook voor gecko en andere browsers
Ok, ik vond het al een lang en onduidelijk script voor zoites simpels
pi_24725319
bgsound is iets dat (gelukkig) alleen IE ondersteund.. Anders zou je iets als flash moeten gebruiken als je crossbrowser geluidjes wilt afspelen bij onmouseover..
  FOK!-Schrikkelbaas maandag 24 januari 2005 @ 16:49:43 #91
1972 Swetsenegger
Egocentrische Narcist
pi_24725716
quote:
Op maandag 24 januari 2005 16:06 schreef Arjan321 het volgende:
bgsound is iets dat (gelukkig) alleen IE ondersteund.. Anders zou je iets als flash moeten gebruiken als je crossbrowser geluidjes wilt afspelen bij onmouseover..
Ja background sound is irritant, maar een heel zacht simpel piepje bij het aanwijzen van een knop vind ik wel toegevoegde waarde.
Maar crossbrowser met een javascript zal dat niet gaan lukken waarschijnlijk....
pi_24771921
Ik zit met het volgende, het het volgende scriptje probeer ik een font en grootte selecteren en weer te geven in de daarvoor bestemde 'box' met id.. nu is het probleem dat ik maar een malig de grootte van het font kan veranderen, daarna kan ik alles proberen maar krijg ik niet de juiste size er uit. Iemand die de fout ziet?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html>
<body topmargin=0 leftmargin=0>
<script language="javascript">
function preview()
{  
    document.getElementById('preview').innerHTML = '<font size="' 
    + document.getElementById('size').value + '" face="' 
    + document.getElementById('font').value + '">Preview</font>';
}
</script>
<table border="0">
<tr><td>Font</td><td>Size</td><td> </td></tr>
<tr><td><select id="font" name="font" size="4" onClick="preview();">
<option value="Arial">Arial</option>
<option value="Helvetica">Helvetica</option>
<option value="Times New Roman">Times New Roman</option>
<option value="Verdana">Verdana</option></select></td>
    <td><select id="size" name="size" size="4" onClick="preview();">
<option value="8">8</option><option value="10">10</option>
<option value="12">12</option><option value="14">14</option>
<option value="18">18</option><option value="24">24</option>
<option value="36">36</option></select></td> 
    <td> </td>
</tr>
<tr><td colspan="3" style="height: 30px;" id="preview">Preview</td>
</tr>
</table>


ps enters ivm verneuken layout
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_24774338
quote:
Op donderdag 27 januari 2005 01:40 schreef Chandler het volgende:
Ik zit met het volgende, het het volgende scriptje probeer ik een font en grootte selecteren en weer te geven in de daarvoor bestemde 'box' met id.. nu is het probleem dat ik maar een malig de grootte van het font kan veranderen, daarna kan ik alles proberen maar krijg ik niet de juiste size er uit. Iemand die de fout ziet?
[ code verwijderd ]

ps enters ivm verneuken layout
Waarom doe je het in godsnaam met innerHTML en een Font element
sowieso wordt <font> tegenwoordig niet meer gebruit, dus gooi dat maar uit je hoofd. Dat soort dingen bepaal je tegenwoordig met CSS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html>
<body topmargin=0 leftmargin=0>
<script language="javascript">
function preview() {  
    document.getElementById('preview').style.fontSize = 
    document.getElementById('size').value + "pt";
}
</script>
<table border="0">
<tr><td>Font</td><td>Size</td><td> </td></tr>
<tr><td><select id="font" name="font" size="4" onClick="preview();">
<option value="Arial">Arial</option>
<option value="Helvetica">Helvetica</option>
<option value="Times New Roman">Times New Roman</option>
<option value="Verdana">Verdana</option></select></td>
    <td><select id="size" name="size" size="4" onClick="preview();">
<option value="8">8</option><option value="10">10</option>
<option value="12">12</option><option value="14">14</option>
<option value="18">18</option><option value="24">24</option>
<option value="36">36</option></select></td> 
    <td> </td>
</tr>
<tr><td colspan="3" style="height: 30px;" id="preview">Preview</td>
</tr>
</table>


Succes
Trotse poster van het 37000000ste bericht ^O^
pi_24774432
ok, maar nu pas je alleen de 'fontsize' aann, ik neem aan dan je ook de font op die manier kan aanpassen?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_24774586
quote:
Op donderdag 27 januari 2005 10:32 schreef Chandler het volgende:
ok, maar nu pas je alleen de 'fontsize' aann, ik neem aan dan je ook de font op die manier kan aanpassen?
alle layout-opties behoren toe aan het 'style'-object:

om het font te veranderen kun je de fontFamily-propertie gebruiken

voor alle mogelijke 'styles', zie bv de documentatie op de MSDN-site (de geeft natuurlijk enkel de mogelijkheden in explorer, welke wel een stuk beperkter zijn, gezien de slechte CSS-ondersteuning: http://msdn.microsoft.com(...)bjects/obj_style.asp of de DOM-Style-lijst op de mozilla-site: http://www.mozilla.org/do(...)e_ref18.html#1002335 )

[ Bericht 8% gewijzigd door RM-rf op 27-01-2005 10:48:00 ]
"Whatever you feel like: Life’s not one color, nor are you my only reader" - Ausonius, Epigrammata 25
pi_24787624
ik zit met een probleempje.. ik heb een array met enkel bedragen er in, iets als dit:
1
2
3
4
5
   totaalArray = new Array(4)
      totaalArray[1] = '2,00';
      totaalArray[2] = '4,45';
      totaalArray[3] = '3,23';
      totaalArray[4] = '6,53';

Nu wil ik de waarden uit deze array bij elkaar optellen, met welke functie doe ik dat?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_24793496
Denk niet dat javascript daar een functie voor heeft...

Dus een forloopje of while loopje gebruiken

1
2
3
4
var totaal = 0; 
for (var i = 0; i < totaalArray.length; i++) {
          totaal+= totaalArray[i];
}


Een array begint trouwens met sleutel/index 0, niet 1..
  FOK!-Schrikkelbaas vrijdag 28 januari 2005 @ 10:25:37 #98
1972 Swetsenegger
Egocentrische Narcist
pi_24793734
Javascript helden, wederom een kleine vraag van mijn kant.

Ik heb een form met meerdere invulvelden en meerdere submits.
Nu wil ik bij bepaalde invoervelden de focus op een specifieke submit button krijgen.

Ik heb iets over focus() gelezen, maar hoe doe ik dit precies? Moet ik de invulvelden een ID meegeven of iets dergelijks?

misschien ter verduidelijking.
Wanneer ik een term in een bepaald veld invul, moet bij een enter niet submitknop 1 actief zijn, maar submitknop 2.

[ Bericht 18% gewijzigd door Swetsenegger op 28-01-2005 11:25:27 ]
pi_24795045
tnx daReaper en RM-rf , nog een klein vraagje. Weten jullie welke font standaard op eingelijk alle windows/unix systemen te vinden zijn? en gebruikt kunnen worden voor internet toepassingen (web? etc?)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_24795541
quote:
Op vrijdag 28 januari 2005 10:25 schreef Swetsenegger het volgende:
Javascript helden, wederom een kleine vraag van mijn kant.

Ik heb een form met meerdere invulvelden en meerdere submits.
Nu wil ik bij bepaalde invoervelden de focus op een specifieke submit button krijgen.

Ik heb iets over focus() gelezen, maar hoe doe ik dit precies? Moet ik de invulvelden een ID meegeven of iets dergelijks?

misschien ter verduidelijking.
Wanneer ik een term in een bepaald veld invul, moet bij een enter niet submitknop 1 actief zijn, maar submitknop 2.
Je kan bijvoorbeeld zoiets doen:

1
2
3
4
5
6
7
8
<form>
 <input type="text" onchange="this.form.submit1.focus();" />
 <input type="text" onchange="this.form.submit2.focus();" />
 <input type="text" onchange="this.form.submit3.focus();" />
 <input type="submit" name="submit1" value="Submit1" />
 <input type="submit" name="submit2" value="Submit2" />
 <input type="submit" name="submit3" value="Submit3" />
</form>
pi_24795578
quote:
Op vrijdag 28 januari 2005 11:36 schreef Chandler het volgende:
tnx daReaper en RM-rf , nog een klein vraagje. Weten jullie welke font standaard op eingelijk alle windows/unix systemen te vinden zijn? en gebruikt kunnen worden voor internet toepassingen (web? etc?)
Als je als laatste element in de font-family, ofwel serif, danwel sans-serif geeft, werkt het op zich in elke browser natuurlijk (serif, zijn lettertypen met een aanhangseltje aan de pootjes van de letters)
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')