Ik denk dat het niet te voorkomen is, dus zou je een nieuw venster (popup ofzo) moeten openen. En dan vraag ik me ook nog af of het wel mogelijk is om te achterhalen of iemand naar een andere pagina binnen de site gaat of naar een andere site (of het venster gewoon sluit).quote:Op vrijdag 5 november 2010 10:28 schreef Intrepidity het volgende:
Ik schaam me diep dat ik deze vraag hier uberhaupt stel, en ik ben er zelf ook heftig op tegen, maar helaas is de klant koning en zal ik het toch moeten proberen. Here goes:
De klant wil graag dat op het moment dat de gebruiker de pagina sluit, of wegnavigeert, er een popup (in de vorm van een jQuery dialogbox) verschijnt waarin de gebruiker gevraagd wordt of hij/zij geabonneerd wil worden op de nieuwsbrief (nogmaals:).
Het uitvoeren van javascriptcode op het moment dat de gebruiker wegnavigeert is niet zo lastig, maar is het ook mogelijk te voorkomen dat de unload van de pagina daadwerkelijk plaats vind?
Helemaal mee eens, maar als je klant het blijft willen, dan kun je ethische argumenten aandragen wat je wilt, uiteindelijk moet je het helaas gewoon doen. Klant komt er zelf ook wel een keer achter dat de bezoekersaantallen kelderen, ik ga gewoon als een dom schaap die functie proberen te bouwen nu.quote:Op vrijdag 5 november 2010 13:00 schreef Light het volgende:
[..]
Afgezien daarvan moet je het imho ook helemaal niet willen. Als een bezoeker van een site wegnavigeert en je probeert hem dan op de site te houden, zal zo'n gebruiker dat niet echt kunnen waarderen. Dat wordt nog minder als je dat bij iedere keer dat de bezoeker de site bezoekt weer gaat vragen. En iemand die de nieuwsbrief al ontvangt, moet je er helemaal niet mee lastigvallen. Bijkomend punt is dat je niet weet of iemand wel of niet geabonneerd is op de nieuwsbrief.
Beste reden om het niet te bouwen is dat het niet kan.
Succesquote:Op vrijdag 5 november 2010 13:04 schreef Intrepidity het volgende:
[..]
Helemaal mee eens, maar als je klant het blijft willen, dan kun je ethische argumenten aandragen wat je wilt, uiteindelijk moet je het helaas gewoon doen. Klant komt er zelf ook wel een keer achter dat de bezoekersaantallen kelderen, ik ga gewoon als een dom schaap die functie proberen te bouwen nu.
Probeer NitobiBug.quote:Op zaterdag 6 november 2010 16:00 schreef RenRen- het volgende:
Ik zoek een debugger die code klaarmaakt voor iedere browser, gericht op Javascript, hebben jullie namen?
Bedoel je niet gewoon Ctrl+shift+J?quote:Op zaterdag 6 november 2010 16:00 schreef RenRen- het volgende:
Ik zoek een debugger die code klaarmaakt voor iedere browser, gericht op Javascript, hebben jullie namen?
Ik heb nu dit bedacht:quote:Op maandag 15 november 2010 13:56 schreef Crutch het volgende:
Ik wil graag binnenin een for- of whileloop een minpauze inlassen alvorens de volgende herhaling van de loop wordt gedaan.
Hoe doe ik dat?
Ik kan geen pauzefunctie vinden behalve setTimeout, maar die vereist een functie.
1 2 3 4 5 6 7 | function start() { setTimeout( "end();", 3000); } function end() { // steek een vinger in je hol } |
Nee, want setTimeout plaatst de aan te roepen functie in een aparte thread zodat de rest van de applicatie door kan lopen. Tenzij je de code die uitgevoerd moet worden na de pauze in de functie end(); stopt gaat dat niet werken. Punt is dat je hoofdthread van een JS-script niet wílt pauzeren omdat de browser hangt in die tijd.quote:Op maandag 15 november 2010 14:01 schreef Crutch het volgende:
[..]
Ik heb nu dit bedacht:
[ code verwijderd ]
Dus zou ik op ieder gewild moment een pause van 3 sec kunnen invoegen met start();
Maar nee dus.
Volgensmij hangen browsers inderdaad gewoon zolang ze bezig zijn scripts uit te voeren, tenzij deze expliciet in een aparte thread geplaatst worden. De meeste scripts echter zijn niet zodanig groot dat je dat gaat merken tijdens het laden van een pagina. JS-engines van tegenwoordig zijn over het algemeen bloedjesnelquote:Op maandag 15 november 2010 14:32 schreef Crutch het volgende:
Doet Javascript dat met alle functies binnenin een loop?
jQuery doet zijn ding dus gewoon in een aparte thread, wel relaxed eigenlijk en ik had dat meteen moeten doen.quote:Op maandag 15 november 2010 14:57 schreef Intrepidity het volgende:
[..]
Volgensmij hangen browsers inderdaad gewoon zolang ze bezig zijn scripts uit te voeren, tenzij deze expliciet in een aparte thread geplaatst worden. De meeste scripts echter zijn niet zodanig groot dat je dat gaat merken tijdens het laden van een pagina. JS-engines van tegenwoordig zijn over het algemeen bloedjesnel
1000x800 is niet bepaald groot, ik heb al meerdere slideshows en brandboxes van dat formaat feilloos werkend gekregen. Gebruik je een bepaalde jQuery plugin of heb je het zelf geschreven?quote:Op donderdag 18 november 2010 11:08 schreef Doc.Brown het volgende:
Over jQuery gesproken. Ik probeer een leuke slideshow te maken van wat foto's maar al gauw wordt dit erg zwaar voor met name IE. Het zijn namelijk erg grote foto's (c.a. 1000x800) die ik met het "Ken Burns effect" in elkaar wil laten overlopen.
Zijn hier nog andere methodes voor? Ik zat zelf al te denken aan een eenvoudige Flash slideshow maar waar je bij Google prima kunt zoeken op "jquery slideshow", naar "flash slideshow" is al een stuk lastiger omdat er zoveel "free flash slideshow" sites zijn die, op z'n zachts gezegd, behoorlijk twijfelachtig zijn.
Hmm. Javascript en Transparency. Bij uitstek 2 dingen waar IE gigantisch slecht in is. Ik denk dat je het beste de browser maar de schuld kunt geven, en maar accepteren dat het in IE kut werkt. Of als alternatief voor IE het hele effect uitschakelen.quote:Op donderdag 18 november 2010 11:39 schreef Doc.Brown het volgende:
Een plugin ja, ik gebruik CrossSlide: http://tobia.github.com/CrossSlide/ en dan gebruik het Ken Burns effect.
Misschien is het hele zoomen en faden te zwaar bij een dergelijke resolutie? Of het is de plugin natuurlijk ja
Waarom zou je die JS-array niet met PHP opbouwen?quote:Op donderdag 18 november 2010 12:04 schreef Intrepidity het volgende:
Matige plugin overigens, de bestandsnamen moeten meegeven in een JS-array. Doorgaans heb je gewoon een div met hierin een zwik images, en vervolgens activeer je de plugin op die div. Dan heb je ook de optie om bijvoorbeeld met PHP slides toe te voegen door het genereren van wat HTML.
Omdat JS genereren met PHP een stuk ranziger is imo dan HTML genereren. Daarnaast doen de meeste plugins dat zo: $("div#divmetfotos").slideshow(); en klaar is kees. Dat maakt het ook een stuk makkelijker om al je JS onder te brengen in externe bestanden, aangezien de PHP parser meestal geen .js-files doorloopt.quote:Op donderdag 18 november 2010 12:18 schreef KomtTijd... het volgende:
[..]
Waarom zou je die JS-array niet met PHP opbouwen?
Waarom zou dat in hemelsnaam anders zijn?quote:Op donderdag 18 november 2010 12:42 schreef Intrepidity het volgende:
[..]
Omdat JS genereren met PHP een stuk ranziger is imo dan HTML genereren.
Een verborgen div met images vind ik eigenlijk ranziger dan gewoon een JS array. Dat eerste zit namelijk in je DOM terwijl het daar niets te zoeken heeft.quote:Daarnaast doen de meeste plugins dat zo: $("div#divmetfotos").slideshow(); en klaar is kees. Dat maakt het ook een stuk makkelijker om al je JS onder te brengen in externe bestanden, aangezien de PHP parser meestal geen .js-files doorloopt.
Waarom verborgen? Je hebt een div, met hierin een stapel images, allemaal op dezelfde absolute positie. Je activeert de slideshow-plugin waardoor het geheel gaat animeren. Dan heb je ook nog eens graceful-degradation, want als javascript uit staat of niet werkt ziet men alsnog de eerste afbeelding.quote:Op donderdag 18 november 2010 13:14 schreef KomtTijd... het volgende:
[..]
Waarom zou dat in hemelsnaam anders zijn?
[..]
Een verborgen div met images vind ik eigenlijk ranziger dan gewoon een JS array. Dat eerste zit namelijk in je DOM terwijl het daar niets te zoeken heeft.
1 2 | <input type="text" name="veld_1" id="veld_1" onchange="document.getElementById('veld_2').value=this.value.replace(/ /g,'-');" /> <input type="text" name="veld_2" id="veld_2"/> |
1 2 3 4 5 6 7 | $("#randomnumber").each(function() { var randX = Math.floor(Math.random()*window.outerWidth+1); var randY = Math.floor(Math.random()*window.outerHeight+1); $("#randomnumber").css("margin-left",randX); $("#randomnumber").css("margin-top", randY); }); |
Ik doe het volgende om een bepaald aantal wolkjes (quote:Op dinsdag 30 november 2010 14:09 schreef Treces het volgende:
Ik probeer divjes random op het scherm te plaatsen.. Ik kom alleen niet verder:
[ code verwijderd ]
Iemand?
1 2 3 4 5 6 7 8 9 | var browser_height = $(window).height(); var browser_width = $(window).width(); for(var i = 0; i < numclouds; i++) { $("body").append("<div class=\"cloud\"><img src=\"images/mains/cloud.png\" /></div>"); $("div.cloud").eq(i).css("top", Math.ceil(Math.random() * (browser_height-250)) + "px"); $("div.cloud").eq(i).css("left", Math.ceil(Math.random() * browser_width) + "px"); } |
Ik weet zeker dat bovenstaande code crossbrowser werkt vanaf in ieder geval IE6. Ik vermoed dat jQuery een bepaalde wrapper om window heenlegt om dergelijke inconsistenties te verhelpen.quote:Op dinsdag 30 november 2010 14:46 schreef KomtTijd... het volgende:
Weet je zeker dat die window height en width correcte waardes geven? Datsoort functies staan niet bekend om hun goeie cross-browser implementaties...
Niet veel, hangt van de doelgroep af. Voor een technisch publiek kun je prima een website met HTML 5 specifieke functionaliteiten bouwen. Voor huisvrouwen van middelbare leeftijd, meh.quote:Op dinsdag 30 november 2010 19:01 schreef Crutch het volgende:
Ik vraag me af hoeveel huishoudens inmiddels html5 kunnen zien in hun browser.
Ongeveer net zoveel als er huishoudens met een computer zijn. Op een enkel huishouden met alleen een machine uit 1999 na misschien.quote:Op dinsdag 30 november 2010 19:01 schreef Crutch het volgende:
Ik vraag me af hoeveel huishoudens inmiddels html5 kunnen zien in hun browser.
Ik heb daar eens een stukje code voor gevonden:quote:Op dinsdag 30 november 2010 14:46 schreef KomtTijd... het volgende:
Weet je zeker dat die window height en width correcte waardes geven? Datsoort functies staan niet bekend om hun goeie cross-browser implementaties...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var myWidth = 0, myHeight = 0; if( typeof( window.innerWidth ) == 'number' ) { //Non-IE myWidth = window.innerWidth; myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myWidth = document.documentElement.clientWidth; myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myWidth = document.body.clientWidth; myHeight = document.body.clientHeight; } |
Als je al jQuery gebruikt kun je volgensmij feilloos $(window) gebruiken omdat jQuery de verschillen wegabstraheert.quote:Op dinsdag 30 november 2010 19:34 schreef Light het volgende:
[..]
Ik heb daar eens een stukje code voor gevonden:
[ code verwijderd ]
En zelfs dit is niet gegarandeerd zuiver, omdat de breedte van een eventuele scrollbalk wel of juist niet wordt meegenomen. Dat is weer browserafhankelijk, en ik heb geen zin/tijd om precies uit te zoeken bij welke browser(s) de scrollbalken worden meegerekend.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <html> <head> <script language="JavaScript" type="javascript/text"> <!-- function Doe() { window.alert("2"); document.getElementById("tekst").Focus(); document.getElementById("tekst").Select(); } --> </script> </head> <body> <Input type="text" id="tekst" value="Tekst" onClick="Doe();"> </body> </html> |
1 | <script language="JavaScript" type="javascript/text"> |
1 | <script type="text/javascript"> |
1 2 | document.getElementById("tekst").Focus(); document.getElementById("tekst").Select(); |
quote:Op zaterdag 4 december 2010 07:26 schreef Light het volgende:
Het gaat fout door deze regel:
[ code verwijderd ]
Als je dat verandert in
[ code verwijderd ]
gaat het al een stuk beter.
Verder zou ik functienamen met een kleine letter laten beginnen, dat doet javascript zelf ook. Deze twee regels gaan zo niet werken:
[ code verwijderd ]
Select() en Focus() moeten daar met een kleine letter beginnen, dan werkt het wel.
Als je classes gaat gebruiken in javascript, kunnen de namen daarvan juist weer wel met een hoofdletter beginnen, dat maakt het onderscheid ook duidelijker tussen classes en functies.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <html> <head> <script type="javascript/text"> <!-- function doe() { window.alert("2"); } --> </script> </head> <body> <Input type="text" name="tekst" value="Tekst" onclick='javascript: window.alert("1"); doe();'> </body> </html> |
ow hehe dat had ik niet eens gezien. Chrome doet het nog...quote:Op zaterdag 4 december 2010 12:54 schreef KomtTijd... het volgende:
Ja firefox gaat over de zeik omdat je consequent type="javascript/text" doet, in plaats van "text/javascript".
Nee, dat heeft te maken met het doctype. Als je een XHTML-doctype gebruikt, moet je die eindslash bij (oa) de input-tag gebruiken. Bij HTML-doctypes mag je die slash weglaten. Je gebruikt helemaal geen doctype, da's sowieso foutquote:Op zaterdag 4 december 2010 12:50 schreef minibeer het volgende:
Ah, ik heb het al: Ik gebruikte geen eindslash bij de inputform: dus ik moet <input ... /> ipv <input ...> gebruiken.
meen, ik faal wel hard met mijn codequote:Op zaterdag 4 december 2010 14:14 schreef Light het volgende:
[..]
Nee, dat heeft te maken met het doctype. Als je een XHTML-doctype gebruikt, moet je die eindslash bij (oa) de input-tag gebruiken. Bij HTML-doctypes mag je die slash weglaten. Je gebruikt helemaal geen doctype, da's sowieso fout
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
[ Bericht 0% gewijzigd door minibeer op 05-12-2010 02:06:33 ]Finally, someone let me out of my cage
Wat ik wil is:quote:Prijs inclusief: <input type="text" name="prijs_inc" /><br />
BTW: <input type="text" name="BTW" />%<br />
Prijs exclusief: <input type="text" name="prijs_exc" /><br />
Oh lol, inderdaadquote:Op zondag 5 december 2010 21:05 schreef Intrepidity het volgende:
Ik neem aan dat je dat andersom bedoelt?10 euro min 19 procent is namelijk niet ineens 11.90
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |