Textarea Pointing Web Storage Tutorial
โœ‚๐Ÿƒ๐Ÿพโ€โ™€๏ธ๐Ÿƒ๐Ÿผโ€โ™‚๏ธ
๐Ÿ“–

Textarea Pointing Web Storage Tutorial

Textarea Pointing Web Storage Tutorial   ๐Ÿ”

We add some โ€œaccountabilityโ€ to where we stopped off at yesterday with Textarea Pointing Canvas Tutorial today. We define โ€œaccountabilityโ€ in this context, and with our rules, short of bothering with โ€ฆ

  • a fully blown database solution โ€ฆ too much โ€ฆ
  • HTTP Cookies โ€ฆ too little โ€ฆ
  • HTML5 Web Storage localStorage โ€ฆ just right

Porridge is served! How to make this decision? To us, it goes by โ€œpermanence factorโ€ (database really good) and โ€œdata size requirementsโ€ (and today we store the whole innerHTML of the HTML form that encompasses all our โ€œtextarea posseโ€ and this is far too much for HTTP Cookies โ€ฆ so HTML5 localStorage is our decision).

There are these aspects to doing this โ€ฆ

  • in the menu section of the webpage have one select element id=ssaveas (dropdown) (with an initial option element labelled โ€œFill in Save As or chooseโ€) and one input type=text element
  • at document.body onload event look through localStorage โ€ฆ as per the Javascript โ€ฆ


    if (window.localStorage) {

    for (var iq in window.localStorage) {

    val = localStorage.getItem(iq);

    if (val) {

    if (iq.substring(0,3) == 'tp_') {

    document.getElementById('ssaveas').innerHTML+='<option value="' + iq.substring(3) + '">Recall "' + iq.substring(3) + '"</option>';

    }

    }

    }

    }


    โ€ฆ to further populate, as necessary, the dropdown, that has โ€ฆ
  • onchange event for select element dropdown reads localStorage โ€ฆ as per Javascript (for variable newo being that webpage snapshotโ€™s name) โ€ฆ as entered by user โ€ฆ


    if (localStorage) {

    if (localStorage.getItem('tp_' + newo)) {

    var bih=decodeURIComponent(localStorage.getItem('tp_' + newo));

    document.getElementById('myform').innerHTML=bih;

    }

    }

  • at onblur event of the input type=text element โ€ฆ Javascript (for variable newo being that webpage snapshotโ€™s name and variable hcont is the HTML code for a โ€œNew Windowโ€ scenario) as per โ€ฆ


    if (newo != '') {

    if (localStorage) {

    if (localStorage.getItem('tp_' + newo)) {

    localStorage.removeItem('tp_' + newo);

    }

    var bbit='m' + hcont.split('<f' + 'orm')[1].split('>')[0] + '>';

    localStorage.setItem('tp_' + newo, encodeURIComponent(hcont.split('<fo' + 'r')[1].replace(bbit,'').split('</f' + 'orm>')[0]));

    document.getElementById('ssaveas').innerHTML+='<option value="' + newo + '">Recall "' + newo + '"</option>';

    }

    }

Todayโ€™s liveโœ‚runโ€˜s textarea_pointingโšซhtm HTML and Javascript (DOM) and CSS codechanges were all clientside, like yesterdayโ€™s work.

Accountability food for thought, we hope?!



Previous relevant Textarea Pointing Canvas Tutorial is shown below.

Textarea Pointing Canvas Tutorial

Textarea Pointing Canvas Tutorial   ๐Ÿ”

With our blog posting thread last left off with yesterdayโ€™s Textarea Pointing PDF Tutorial, I know weโ€™ve been holding out on involving โ€ฆ

โ€ฆ not for โ€œnga, nga, nga nga, ngaโ€ reasons, but because we want to show that the starting out with โ€œtextarea character dataโ€ sets is a useful layer of information that can sit on top and easily pass onto these (last two above in particular) functionalities above in optional reporting modes of use, but still keep that โ€œtextual contextโ€ in place as well. Win, win, weโ€™d say.

However, on non-mobile web browsers in particular, youโ€™ve got to appreciate how the modern browsers interface to canvas elements and image data (which can be derived from that canvas element by the oft mentioned [canvasElement].toDataURL() method) with a myriad of right click (Windows or two finger gesture on Mac OS X) options, our favourites of which are โ€ฆ

  • image โ€“ Open Image in New Tab (or Window)
  • image โ€“ Save Image to Desktop
  • image โ€“ Save Image Asโ€ฆ
  • image โ€“ Copy Image
  • image โ€“ Share Mail (to client email (ie. your own email address is โ€œFromโ€ email address) as image attachment)
  • image โ€“ Share Message
  • canvas โ€“ Save Page as Web Archive
  • canvas โ€“ Print Pageโ€ฆ Open PDF in PDF Reader
  • canvas โ€“ Print Pageโ€ฆ Save As PDF
  • canvas โ€“ Print Pageโ€ฆ Save As PostScript
  • canvas โ€“ Print Pageโ€ฆ Mail PDF (to client email (ie. your own email address is โ€œFromโ€ email address) with a PDF attachment)

โ€ฆ so much so that we just want all this clientside (no PHP serverside โ€œanythingโ€ today) to wash over you with your mind โ€œswimmingโ€ with possibilities, perhaps?!

Take a look at todayโ€™s liveโœ‚runโ€˜s textarea_pointingโšซhtm HTML and Javascript (DOM) and CSS code changed thisway as all that needed to change to involve canvas and image data and data URIs in our Textarea Pointing project.

If there is no serverside โ€œanythingโ€ going on, what is the โ€œglueโ€ that holds all this clientside interfacing together? These days, more and more, it is the use of data URI portable data that can be used in, just with todayโ€™s work โ€ฆ

  • HTML img element src attribute
  • HTML img element style attribute background URL(data URI)

This is all great, but thatโ€™s it, unless you want to run that image data back through an intelligent scanning process to try to regain the โ€œcharacter dataโ€? Some scanners do this, but do you really think you are going to continue getting a good result that way forever? We say, hang on to data in rawer forms and resolutions until the very last minute, and only go to these very well programmed for โ€œgraphicalโ€ forms (of final reporting) for your final reporting, or if you know that only that โ€œblobbyโ€ โ€œgraphicalโ€ form is all thatโ€™s required anyway. If so, think about using HTML canvas from the start. Itโ€™s data capture capabilities, as we at this blog have been at pains to point out for a long time now, are also excellent.

Another Paul Kelly song seems apt!


Previous relevant Textarea Pointing PDF Tutorial is shown below.

Textarea Pointing PDF Tutorial

Textarea Pointing PDF Tutorial   ๐Ÿ”

Yesterdayโ€™s Textarea Pointing Email Tutorial was a start to our โ€œsharingโ€ functionality โ€œpushโ€ with our new Textarea Pointing project. That work involved โ€ฆ

  • (new window) with menu
  • (new window) without menu
  • email with HTML attachment โ€ฆ and today we add to that โ€ฆ
  • email with PDF attachment โ€ฆ as well as โ€ฆ
  • PDF download to client device
  • PDF display via default client PDF viewer

โ€ฆ that required, again, Linux diff PDF Tutorial liveโœ‚runโ€˜s prediffphp PHP code integration inthis changed way. This time, though, rather than $outputpdf->Cell($x, $y, $line_of_text); being the best Fpdf means of displaying of the PDF text, we found โ€ฆ



$outputpdf->Text($x, $y, $line_of_text);

โ€ฆ to be more applicable to programming like for the way vinyl records work with their stylus, in other words, at a given โ€ฆ

  • HTML textarea element (x,y) position โ€ฆ we gather โ€ฆ
  • HTML textarea element font information stored in the alt attribute โ€ฆ to place text โ€ฆ
  • to be able to โ€ฆ
    $outputpdf->SetFont($fontFamily, $fontStyle, $fontSize);
    $outputpdf->SetTextColor($fontColR, $fontColG, $fontColB);
    $outputpdf->Text($x, $y, $line_of_text);

โ€ฆ as the โ€œwork of the codeโ€ needed to transition from our โ€œuser capture with character dataโ€ (in the โ€œtextareaโ€s) to a graphical system (or โ€œwidgetโ€, you might like to think of this as). It just so happens that the first (graphical) โ€œwidgetโ€ design of interest is the creation of PDF, as it is a good conduit between โ€œcharacter dataโ€ and a โ€œgraphical lookโ€. A โ€œwidgetโ€ feeling thing being what it is though, expect more integrations to come, as time goes on!

Todayโ€™s liveโœ‚runโ€˜s textarea_pointingโšซhtm code changed thisway.


Previous relevant Textarea Pointing Email Tutorial is shown below.

Textarea Pointing Email Tutorial

Textarea Pointing Email Tutorial   ๐Ÿ”

Yesterdayโ€™s Textarea Pointing Primer Tutorial was a little too localised in its application in our books. Not if a web application is not of generic use, but this one could be of generic use, in our pamphlettes books.

Our favourite โ€œsharingโ€ idea is email, by far, as today, as far as that goes, we are going to offer email โ€œservicesโ€ via a โ€œclient pre-emptive iframeโ€ determination of whether where you have placed todayโ€™s liveโœ‚runโ€˜s textarea_pointingโšซhtm code (changed thisway) has, relative to it, an existant ../PHP/Geographicals/prediff.php PHP code source (that we left to go on our Textarea Pointing project) of Linux diff PDF Tutorial (liveโœ‚runโ€˜s prediffphp PHP codeโ€™s lastchanges were used to cater for the Textarea Pointing HTML email attachment requirement).

We like to use a โ€œclient pre-emptive iframeโ€ technique initial check for whether the HTML finds prediff.php because the email functionality is optional after all. If prediff.php is not found, then the Email button is never shown, simple as that. But the other two displays of the HTML in new popup windows โ€ฆ

  • with menu
  • without menu โ€ฆ as well as โ€ฆ
  • email with HTML attachment

โ€ฆ complete the scope of the new โ€œSharingโ€ functionalities today, and this year, on this!

So โ€ฆ Happy New Year!


Previous relevant Textarea Pointing Primer Tutorial is shown below.

Textarea Pointing Primer Tutorial

Textarea Pointing Primer Tutorial   ๐Ÿ”

Completely new idea today, so hoping this does not put some of you โ€œepisodicโ€ users off. Weโ€™ll get back to incomplete recent โ€œthreadsโ€ at a later date. This is because we had pause for thought, due to yesterdayโ€™s PDF textual data positioning work, regarding one of our favourite HTML fundamental element types of interest (that we are always comparing) โ€ฆ

To quote HTML Textarea and Div Talents Primer Tutorial (as it was addressing the textarea HTML element) โ€ฆ

Itโ€™s crucial for getting HTML or non-caretted Text (that is internally turned into HTML behind the scenes) โ€ฆ via those wonderful tabs โ€ฆ off the user and onto the MySql database, and then out to the client user as part of a webpage. Out at that webpage, though, weโ€™ve no doubt this content is embedded in an HTML div element, the other โ€œtalentโ€ here.

But their strengths and weaknesses go like this, at least to us, in the limited HTML text view of things โ€ฆ

Text Functionality Issue HTML Element Type Strength Weakness (where a โ€œYesโ€ is like โ€ฆ โ€œOh No!โ€)
Display Monocolour Text Textarea Yes
Div Yes
Display Editable Text Textarea Yes
Div Yes
Display Multicolour Text Textarea Yes
Div Yes

Nothing there above gives much encouragement about the HTML textareaโ€˜s โ€œpositioningโ€ talents. But what if we were to create a โ€œposseโ€, or perhaps a โ€œphalanxโ€, of โ€œtextareaโ€s to bank up with โ€œbits and piecesโ€ of the positioning โ€œissueโ€ (under the auspices of an HTML form element, for later accountability)?

What do we mean by โ€œissueโ€ here? Well, something like a letter, as with the end product of a scanning process involving a hardcopy letter, is that much more useful if what we end up with is the โ€œcharactersโ€ that go to make up that letter (or report, or essay), not some graphic (or totally visual) encapsulation of it, which can be what happens when you involve as your HTML โ€œcaptureโ€ element the โ€œcanvasโ€ element. No, we want that โ€œposseโ€ of โ€œtextareaโ€s be that โ€œcharacterโ€ source, which later, we can present as an overall graphic at a later date, for sharing purposes for instance, and maintain the โ€œletterโ€ (or report or essay) data continuously as the user edits.

How to do? We click/touch with a base โ€œtextareaโ€ and that is enough to arrange for an โ€œoverlayโ€ โ€œtextareaโ€ (via CSS position:absolute and z-index properties, some background-color:transparent styling, along with div id=dscript (innerHTML) appended dynamic CSS styling making use of CSS calcโ€˜ing <style> .mboard2 { width: calc(85% โ€“ 56px); } </style> type syntax (where the 56px would have been derived via the onclick event logic, the 85% is to allow for a 15% width menu at the right, and the 2 in mboard2 refers to the second textarea in question)) to follow (ironically an HTML div element is by far the best โ€œcontainerโ€ in a (Javascript DOM controlled) linked list fashion for this, rather than appending to the HTML form elementโ€™s innerHTML (which seems to wipe out previous textarea values)), like a linked list of โ€œtextareaโ€s. Along the way we allow for font information to be collected and kept as well (for now, via the textareaโ€˜s alt attribute), to add to the chances for variety with our overall โ€œletterโ€ (or report or essay) reporting end product.

Which leaves us to talk about the โ€œtextarea pointingโ€ liveโœ‚runโ€˜s underlying HTML and Javascript and CSS textarea_pointingโšซhtml code for your perusal.

If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.


If this was interesting you may be interested in this too.

This entry was posted in eLearning, Event-Driven Programming, Tutorials and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *