Tag Archives: innerHTML

WordPress Blog ISBN Links Primer Tutorial

When you are tailoring a WordPress blog, using the “edit header.php” principles we use so much here, at this blog, different aims coalesce on shared Javascript function intervention points, just about all associated with document.body onload event intervention, we most often find, and today’s “create ISBN (International Standard Book Number) helper links” (courtesy of ISBN Search website, thanks) calls on the previous WordPress Blog Complex Selectors Tutorial‘s same Javascript function intervention point. “Sisters of code”. Why might these two quite disparate aims meet at our WordPress blog’s (homegrown) Javascript function checkonl() { … } entry point? For us, doing the changes today, we knew that … we wanted to intervene at document.body onload event … all easy and good there … and then … we wanted to scour the [htmlElement].innerHTML (and today [htmlElement].textContent is also useful) of all HTML p (paragraph) elements looking for our “ISBN:” habitual flaggings of referring to a book (but not having already established an a link regarding it) … so … we looked in WordPress theme TwentyTen’s header.php for mentions of (the ilk) … var arrayVar=document.getElementsByTagName(‘p’); … and so it came to pass that function checkonl() { … } was the best place to “share” interventional (document.body onload event) Javascript (client) code. Now with a lot of jobs, that is the most “telling” thing to establish, and yes, it is somewhat “telling” today too, but more on the scale that we “go tell it on a moun-tainmole-hill” because doing a linking “after the event” can be difficult not so much for the … ISBN: [ISBN number] habit we have, that is easy to track … but working backwards to attempt to find … by [author list] … and/or … thanks to [book title] … eg. Thanks to WordPress Web Design for Dummies, 3rd Edition by Lisa Sabin-Wilson ISBN: 978-1-1190886-4-6 … is so much harder to track, though resorting to [htmlElement].textContent property can help, sometimes. It’s one of those jobs that you do your best, but do not act (to create the new link) if the result is uncertain (especially because there is no harm done not having the link). Bits of function checkonl() { … } changed as below … function checkonl() { var bisi=[-1], iisi=[-1], pisi=[-1], jbisi=0, jiisi=0, jpisi=0, iourps; var ourps=document.getElementsByTagName(“b”); for (iourps=0; iourps<ourps.length; iourps++) { if (ourps[iourps].innerHTML.replace(/<p>/g,””).replace(/<i>/g,””).replace(/<b>/g,””).replace(/<\/p>/g,””).replace(/<\/i>/g,””).replace(/<\/b>/g,””) == “Did you know?”) { bisi[jbisi]=iourps; jbisi++; bisi[jbisi]=-1; } else if (ourps[iourps].innerHTML.replace(/<p>/g,””).replace(/<i>/g,””).replace(/<b>/g,””).replace(/<\/p>/g,””).replace(/<\/i>/g,””).replace(/<\/b>/g,””) == “Stop Press”) { bisi[jbisi]=iourps; jbisi++; bisi[jbisi]=-1; } } ourps=document.getElementsByTagName(“i”); for (iourps=0; iourps<ourps.length; iourps++) { if (ourps[iourps].innerHTML.replace(/<p>/g,””).replace(/<i>/g,””).replace(/<b>/g,””).replace(/<\/p>/g,””).replace(/<\/i>/g,””).replace(/<\/b>/g,””) == “Did you know?”) { iisi[jiisi]=iourps; jiisi++; iisi[jiisi]=-1; } else if (ourps[iourps].innerHTML.replace(/<p>/g,””).replace(/<i>/g,””).replace(/<b>/g,””).replace(/<\/p>/g,””).replace(/<\/i>/g,””).replace(/<\/b>/g,””) == “Stop Press”) { iisi[jiisi]=iourps; jiisi++; iisi[jiisi]=-1; } } ourps=document.getElementsByTagName(“p”); for (iourps=0; iourps<ourps.length; iourps++) { if (ourps[iourps].innerHTML.replace(/<p>/g,””).replace(/<i>/g,””).replace(/<b>/g,””).replace(/<\/p>/g,””).replace(/<\/i>/g,””).replace(/<\/b>/g,””) == “Did you know?”) { pisi[jpisi]=iourps; jpisi++; pisi[jpisi]=-1; } else if (ourps[iourps].innerHTML.replace(/<p>/g,””).replace(/<i>/g,””).replace(/<b>/g,””).replace(/<\/p>/g,””).replace(/<\/i>/g,””).replace(/<\/b>/g,””) == “Stop Press”) { pisi[jpisi]=iourps; pisi[jpisi]=iourps; jpisi++; pisi[jpisi]=-1; } else if (ourps[iourps].innerHTML.toUpperCase().indexOf(“ISBN:”) != -1) { var isbnis=”, jisbn=0, okays=”-0123456789″, preis=[]; if (ourps[iourps].innerHTML.toUpperCase().indexOf(“ISBN: “) != -1) … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , | Leave a comment

Textarea Pointing Local Font Canvas Overlay Deletes Tutorial

In life, as in programming, it’s the “what ifs?” about a job that can take a whole lot longer than you think, I suppose, as much as anything, if you’re an optimist like me, and want to get into projects at the start to see progress early (as to not assign a project to the “do later” basket), and so have left those “what ifs?” to tackle later. Or maybe, really, it’s just your simpler thinking types, like me, that work it this way. Anyway, whatevvvvveerrr, they often take more time, and in today’s case, we find it hard to envisage we should have made its functionality a “central tenet” to doing the project. So what is this newly introduced functionality to our “Textarea Pointing” and “Local Fonts” projects? It’s the “textarea” keyboard functionality requirements in relation to “what if the user hits the … Backspace or Delete … keys?“. Our non central view of this issue panned out as an okay strategy, and maybe a few days back with the Textarea Pointing Local Font Event Usage Tutorial (shenanigans, that required a Stop Press) you were nodding your head (very sagely, no doubt?!) when we said … Stop Press New preference to use onkeypress is to do with its better interpretation (with respect to onkeyup) of those characters that share a keyboard button and are not letters nor numbers (eg. the comma). Thanks to this useful link and this Firefox good advice, thanks, for excellent information here. … predicting we’d come to a pretty pass when we lifted our gaze to the “Backspace Delete dilemma” … da da da da. On that day we got confused by Firefox behaviour with characters like comma (“,”) and, we think now, co-ordinates that are real rather than integers, and we gave the onkeydown event a try for a few minutes (maybe you saw with an earlier version of the Stop Press). Well, now, we realize in hindsight, that the onkeypress event is not the place to trap Backspace, nor Delete keys, and in the … onkeydown/onkeypress/onkeyup … common ordering of web browser keyboard events it is actually good to compartmentalize the onkeypress event logic to handle the “non what if?” work and onkeydown event logic (new to our code today) to handle the “Backspace Delete … da da da da dilemma” … fortuitous, huh?! What’s our approach? We store in a global Javascript … var verboselastcharsare=”; … at “textarea” onclick events an initialized value of … mousePositionX,mousePositionY,0 … and henceforward an updated semicolon delimited set of … mousePositionX.startOfCanvasCommandArrayRangeIndex,mousePositionY.endOfCanvasCommandArrayRangeIndex,asciiCodeOfCharacter.canvasIdPartToSetVisibilityHiddenRePhalanxOfCanvasesOverPosseOfTextareas … when characters are detected by onkeypress. That sets us up to backtrack should the onkeydown event detect a “textarea” keyboard … Backspace or Delete … key as per (where ota represents a “textarea” object (just created)) … ota.addEventListener(‘keydown’, function(event) { // thanks to https://stackoverflow.com/questions/9906885/detect-backspace-and-del-on-input-event/9906991 const key = event.key; // const {key} = event; ES6+ … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Textarea Pointing Local Font Canvas Overlays Tutorial

Yesterday’s Textarea Pointing Local Font Event Paste Tutorial had us (additionally to the “Pointing” functionality mode of use) integrating “local font” display with the … “Font Learning via Canvas” … but then you’ll remember with Textarea Pointing Local Font Tutorial‘s … It’s in our thinking to capture these co-ordinates via any/both of … textarea canvas … but for today’s progress, just canvas work in an HTML iframe channeling our Signature Signature Primer Tutorial‘s “Signature of Signature” (hard working “duck” web application) examined … you guessed it … via a “client pre-emptive iframe” determination of its existence. We limit the height and width of that HTML iframe to reflect the height and width of a font character, but bear with us if the size of this changes a bit over time. We’ll see. The iframe starts in “scribble” data capture mode, reflecting you creating your own unique font character versions, hence the “local font” concept. … how we wanted to truly differentiate the functionalities of … “Font Learning via Textarea“ “Font Learning via Both“ … and today’s the day for that differentiation to occur, so that, in our books … but not our pamphlettes … “Font Learning via Textarea” … will, in the posse of “textareas” display, for “local fonts” linked to, will display those “local font” characters at the appropriate time within the “textarea” of focus, as the user types the (keyboard) character of interest, as the “linework” it is represented as in the “local font” data (in web storage “localStorage” … so local to the web browser the user is currently using), else for other (keyboard) characters the usual functionality of “textarea” display and data collection and input, apply … and will not show those “local font” mappings after clicking the “Canvas” button “Font Learning via Both” … is as above but will show those “local font” mappings after clicking the “Canvas” button, as well Given we are not mentioning “@font-face” (for online font methodologies) anywhere, how do we achieve the new functionality differentiation for those two options above? Canvases again, a whole “phalanx” of them, overlayed (via CSS position:absolute and z-index properties) on top of the “posse” of “textareas” at places where “local font” characters can be plucked out of storage and used in the displays. The live run‘s textarea_pointing.htm HTML and Javascript (DOM) and CSS changed this way to continue down this “use of local fonts” freeway. Previous relevant Textarea Pointing Local Font Event Paste Tutorial is shown below. Yesterday’s Textarea Pointing Local Font Event Usage Tutorial‘s bugs have in large part been addressed today. I’d rather not discuss. Moving forward, today, we catered for the possibilities of a paste operation delivered into our “posse” of “textareas” … Clag salespeople perhaps? … on the scenario that we are using “local fonts”, and when you use “local fonts” we want you to have many keyboard “onkeypress” events try … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Textarea Pointing Local Font Event Paste Tutorial

Yesterday’s Textarea Pointing Local Font Event Usage Tutorial‘s bugs have in large part been addressed today. I’d rather not discuss. Moving forward, today, we catered for the possibilities of a paste operation delivered into our “posse” of “textareas” … Clag salespeople perhaps? … on the scenario that we are using “local fonts”, and when you use “local fonts” we want you to have many keyboard “onkeypress” events try and keep up with what you are typing … so we looked up the web and got the code below, largely thanks to this useful link (thanks) helps us out with … // Thanks to https://stackoverflow.com/questions/3368578/trigger-a-keypress-keydown-keyup-event-in-js-jquery function triggerEvent(el, type, keyCode) { if (‘createEvent’ in document) { // modern browsers, IE9+ var e = document.createEvent(‘HTMLEvents’); e.keyCode = keyCode; e.initEvent(type, false, true); el.dispatchEvent(e); } else { // IE 8 var e = document.createEventObject(); e.keyCode = keyCode; e.eventType = type; el.fireEvent(‘on’+e.eventType, e); } } function pasted(element) { setTimeout(function(){ if (dynamiccanvas) { for (var iii=0; iii<element.value.length; iii++) { triggerEvent(document.getElementById(focusto), ‘keypress’, element.value.substring(iii,eval(1 + iii)).charCodeAt()); } } }, 4); } … for HTML “textarea” elements containing onpaste=”pasted(this);” within their attributes. As far as dealing with non-monospaced fonts, we again got good advice from the “net” and used the code of this useful link (thanks) as below … // Handy JavaScript to measure the size taken to render the supplied text; // you can supply additional style information too if you have it. // Thanks to https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript function measureText(pText, pFontFamily, pFontSize, pStyle) { var lDiv = document.createElement(‘div’); document.body.appendChild(lDiv); if (pStyle != null) { lDiv.style = pStyle; } lDiv.style.fontFamily = “” + pFontFamily; lDiv.style.fontSize = “” + pFontSize.replace(‘px’,”) + “px”; lDiv.style.position = “absolute”; lDiv.style.left = -1000; lDiv.style.top = -1000; lDiv.innerHTML = pText + pText; var lResult = { width: lDiv.clientWidth, height: lDiv.clientHeight }; lResult.width/=2; //lResult.width*=1.2; document.body.removeChild(lDiv); lDiv = null; return lResult; } … to be constantly updating our Javascript’s global var charwh = {width: 0, height: 0}; so that real rendered character widths are calculated to allow us, when in “local fonts” mode, more reliably draw “local font” linework and non-“local font” characters alike with a suitable width for that Font Family and Font Style and Font Size combination. And thanks to the wonderful rainbow colours webpage helping us out with our (tutti frutti) “local fonts” execution example as shown in today’s tutorial picture. The live run‘s textarea_pointing.htm HTML and Javascript (DOM) and CSS changed this way to continue down this “use of local fonts” boulevard. Previous relevant Textarea Pointing Local Font Event Usage Tutorial is shown below. Today we embark on our journey to incorporate the “local fonts” of yesterday’s Textarea Pointing Local Font Colour Tutorial, and earlier, in real scenarios. The first cab off the rank is this web application, “Textarea Pointing” we’ve been working on. We now allow you to (but need more refinement on the detail of) … specify a font family which is a “local … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Textarea Pointing Local Font Event Usage Tutorial

Today we embark on our journey to incorporate the “local fonts” of yesterday’s Textarea Pointing Local Font Colour Tutorial, and earlier, in real scenarios. The first cab off the rank is this web application, “Textarea Pointing” we’ve been working on. We now allow you to (but need more refinement on the detail of) … specify a font family which is a “local font” name (which the user can arrange at the Javascript prompt window asking for this “local font” name of use) while you enter keyboard characters in the bank of “textarea” elements we trap the onkeyup onkeypress event to obtain the (keyboard) character that was pressed, while already existant was functionality at the “textarea” onclick event to have available to us that first “textarea” top left position (that we then offset our position from based on font size characteristics and the onkeyup onkeypress detection of ascii code 13 for carriage return (to create a new line within the “textarea”)) as necessary, if the keyboard character has been digitised into the “local font” record the “linework” of that character for that “local font”, else record the way that character would be placed as text, into the underlying HTML5 canvas element as the user then next presses the “Canvas” button they see the results of this merging of default font with “local font” rendering Stop Press New preference to use onkeypress is to do with its better interpretation (with respect to onkeyup) of those characters that share a keyboard button and are not letters nor numbers (eg. the comma). Thanks to this useful link and this Firefox good advice, thanks, for excellent information here. … but, as you can see from today’s tutorial picture tweaking all this correctly, is a work in progress. Of course, one issue is that most fonts are not monospaced fonts, as Courier New is, so letters such as “i” take up a much smaller width to characters like “m” and “w” … oh! happy days?! Making it more generic is a work in progress too, but we are encouraged by the early workings of the “proof of concept” parts to this “local font” usage. The live run‘s textarea_pointing.htm HTML and Javascript (DOM) and CSS changed this way to start down this “use of local fonts”. Previous relevant Textarea Pointing Local Font Colour Tutorial is shown below. The normal way we deal with fonts online is to define a … font family font style font size … or say nothing and let the defaults happen. That can then be modified by a … font colour … and the whole sets of characters you’ve defined these settings for will have those characteristics “mapped” onto them. However, with our “local fonts”, we are making the rules (and though we are not sure this thinking will “map” over to our work later, when we will try to have all this … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Textarea Pointing Local Font Colour Tutorial

The normal way we deal with fonts online is to define a … font family font style font size … or say nothing and let the defaults happen. That can then be modified by a … font colour … and the whole sets of characters you’ve defined these settings for will have those characteristics “mapped” onto them. However, with our “local fonts”, we are making the rules (and though we are not sure this thinking will “map” over to our work later, when we will try to have all this data capture amount to creating a real online font (we’ll at least look into it)), and we are free to rejoin yesterday’s Textarea Pointing Local Font Editing Tutorial‘s … Did you notice how we differentiated the X co-ordinates as “Integers” (ie. counting numbers) and did not say that about the Y co-ordinates? That’s because we want some flexibility down the track to be able to add some business logic somewhere, but try not to break the basic delimitation rules of the design … to take up the challenge of using an mantissa part to that Y co-ordinate consisting of (for the case of {startYCoord}) … {startYCoord} is made up of {startIntegerYCoord}[.{Red3Digits}{Green3Digits}{Blue3Digits}] … enabling what we like to call “tutti frutti” ideas with your font characters, in that they can have multiple colours in their makeup at the font creation level. The creator of the local font can control this by setting a colour and then clicking on a previously digitized font character, to modify it for this new colour setting imbued in its co-ordinate makeup. Cute, huh? In order to achieve that idea, we again needed to set up more “interplay” between … Today’s live run‘s textarea_pointing.htm HTML and Javascript (DOM) and CSS changed this way to allow for these new “colourful” local “Font Creation” canvas editing functionalities … supervising … Called HTML and Javascript and CSS (with the canvas element) signature_signature.html changed this way sharing canvas co-ordinates when a parent web application is interested in “rasterizations”, sometimes colourful Previous relevant Textarea Pointing Local Font Editing Tutorial is shown below. A basic design, as presented in the first of the “Local Font” thread of blog postings called Textarea Pointing Local Font Tutorial yesterday provided a blueprint to move forward on this project. We think we can work with its architecture. Did you notice how we differentiated the X co-ordinates as “Integers” (ie. counting numbers) and did not say that about the Y co-ordinates? That’s because we want some flexibility down the track to be able to add some business logic somewhere, but try not to break the basic delimitation rules of the design, but more on that idea later. Today, we want to set about improving on aspects to the user experience (UX) of a user maintaining a “local font”. How would it be if I said to you to … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Textarea Pointing Local Font Editing Tutorial

A basic design, as presented in the first of the “Local Font” thread of blog postings called Textarea Pointing Local Font Tutorial yesterday provided a blueprint to move forward on this project. We think we can work with its architecture. Did you notice how we differentiated the X co-ordinates as “Integers” (ie. counting numbers) and did not say that about the Y co-ordinates? That’s because we want some flexibility down the track to be able to add some business logic somewhere, but try not to break the basic delimitation rules of the design, but more on that idea later. Today, we want to set about improving on aspects to the user experience (UX) of a user maintaining a “local font”. How would it be if I said to you to use this piece of functionality you had to repeat a set of actions 128 (-34 nonprintable inapplicables) times to complete a font set, and could not come back in just to edit one of those 128 (-34 nonprintable inapplicables) characters. I’d imagine you’d be pretty unimpressed. By the end of today though … yes, you still should complete, once, those 128 (-34 nonprintable inapplicables) font characters, to complete a “local font” character set (of data captures) … but … as we say, “just the once” … and … a set that has only one character defined can still be worked with (and yes, we’ll be getting to that in future tutorials), before you visit all/some of those 128 (-34 nonprintable inapplicables) characters … this blog post is hereby dedicated to Alice’s Restaurant … any one font character edit (out of those 128 (-34 nonprintable inapplicables)) can have old attempts “Retained” (where you see that old attempt, and add your new “scribble” data to that old attempt, as required) or “Cleared” (in order to start again) … as new HTML a tags added into our new “local font” menu table the user (has a mechanism now whereby they) can choose to now wipe the slate clean for a whole “local font” name of their choosing, and start again with it, as required In order to achieve that second last idea, we needed to set up more “interplay” (such as making the nocookies= URL argument be able to contain the pen up/pen down instructions for an old attempt at the font character in question, as needed, and if not, signal a “Cleared” scenario) among … Today’s live run‘s textarea_pointing.htm HTML and Javascript (DOM) and CSS changed this way to allow for these new local “Font Creation” canvas editing functionalities … supervising … Called HTML and Javascript and CSS (with the canvas element) signature_signature.html changed this way sharing canvas co-ordinates when a parent web application is interested in “rasterizations” … and calling … External Javascript called signature_signature.js changed this way regarding stopping localStorage and HTTP Cookie logic within its usual logic (collecting people’s … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment

Textarea Pointing Local Font Tutorial

A large part of the design of a web application relates to the agreed message formats. Yesterday’s Textarea Pointing Rasterise Tutorial started us down the road of a new message format whose delimitation highlights goes like an encodeURIComponent() version of … {header}:[{startIntegerCoord}.{Red3Digits}{Green3Digits}{Blue3Digits}{Another3Digits}[,{nonStartIntegerCoords}*][;{startIntegerCoord}.{Red3Digits}{Green3Digits}{Blue3Digits}{Another3Digits}[,{nonStartIntegerCoords}*]*]*] … where in general terms “,” is “pen down” and “;” is “pen up” (and “:” separates a {header} from “the rest”), and in yesterday’s thoughts … {header} consists of {dataLength}.{numberOfPixelsInOneRowWidth} … and because of this, these message types stand alone (important when designing a message format) in that any one {startIntegerCoord} or any of {nonStartIntegerCoords} could get an (x,y) co-ordinate set be defined via (for the case of {startIntegerCoord}) … x = ({startIntegerCoord} % {numberOfPixelsInOneRowWidth}) y = (({startIntegerCoord} – x) / {numberOfPixelsInOneRowWidth}) But we’ve digressed a little from today’s “Textarea Pointing Local Font Tutorial” topic haven’t we? Well, not entirely, because the messages used to define our “local fonts” (yes, we are setting about a system of defining fonts local to other web applications on the same domain using [canvasContext].strokeText() or [canvasContext].fillText() (if we are interested), the storage means being as a few tutorials ago … a fully blown database solution … too much … HTTP Cookies … too little … HTML5 Web Storage localStorage … just right … hence the encodeURIComponent() bit to the blurb above) … will base themselves on the same delimitation rules, but it’s just that, with “local font” messaging … {header} is {nameOfYourLocalFont} … and that will not start with a number … now will it, “compliant user”? … so the logic should be able to categorize logic for those via … {header}:[{startIntegerXCoord}.{Red3DigitsIsZero}{Green3DigitsIsZero}{Blue3DigitsIsZero}{asciiCharacterCodeIn3Digits}[,{startYCoord}]][{,{nonStartIntegerXCoord},{nonStartYCoord}}*][{;{penUpIntegerXCoord},{penUpYCoord}}*][{,{nonStartIntegerXCoord},{nonStartYCoord}}*]*]*] It’s in our thinking to capture these co-ordinates via any/both of … textarea canvas … but for today’s progress, just canvas work in an HTML iframe channeling our Signature Signature Primer Tutorial‘s “Signature of Signature” (hard working “duck” web application) examined … you guessed it … via a “client pre-emptive iframe” determination of its existence. We limit the height and width of that HTML iframe to reflect the height and width of a font character, but bear with us if the size of this changes a bit over time. We’ll see. The iframe starts in “scribble” data capture mode, reflecting you creating your own unique font character versions, hence the “local font” concept. In summary, codewise … Today’s live run‘s textarea_pointing.htm HTML and Javascript (DOM) and CSS changed this way to allow for these new local “Font Creation” (initially via canvas) logics available as (non default) options off an HTML select element dropdown (hived off the web application H1 title) … supervising, newly … Called HTML and Javascript and CSS (with the canvas element) signature_signature.html changed this way sharing canvas co-ordinates when a parent web application is interested in “rasterizations” … and calling … External Javascript called signature_signature.js changed this way regarding stopping localStorage and HTTP Cookie logic within … Continue reading →

Posted in eLearning, Event-Driven Programming, Tutorials | Tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , | Leave a comment