{"id":56293,"date":"2022-07-02T03:01:49","date_gmt":"2022-07-01T17:01:49","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=56293"},"modified":"2022-07-02T14:33:03","modified_gmt":"2022-07-02T04:33:03","slug":"scrolling-logging-template-literals-primer-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/scrolling-logging-template-literals-primer-tutorial\/","title":{"rendered":"Scrolling Logging Template Literals Primer Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/console_override.html\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Scrolling Logging Template Literals Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/console_override.jpg\" title=\"Scrolling Logging Template Literals Primer Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Scrolling Logging Template Literals Primer Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a target=_blank title='Screen Capture API Download Video Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/screen-capture-api-download-video-tutorial\/'>Screen Capture API Download Video Tutorial<\/a>&#8216;a web application code, thanks to <a target=_blank href='\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Screen_Capture_API\/Using_Screen_Capture' title='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Screen_Capture_API\/Using_Screen_Capture'>Using Screen Capture<\/a>, used interesting Javascript <a target=_blank title='Tagged Template Literals' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Template_literals'>Template Literals<\/a> &#8230;<\/p>\n<blockquote cite='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Template_literals'><p>\nTemplate literals are literals delimited with backtick (`) characters, allowing for multi-line strings, for string interpolation with embedded expressions, and for special constructs called tagged templates.<br \/>\n<br \/>\nTemplate literals are sometimes informally called template strings, because they are used most commonly for string interpolation (to create strings by doing substitution of placeholders). However, a tagged template literal may not result in a string; it can be used with a custom tag function to perform whatever operations you want on the different parts of the template literal.\n<\/p><\/blockquote>\n<p> &#8230; <font color=blue>we&#8217;ve adapted<\/font> for use today in our very simple &#8220;Scrolling Logging&#8221; <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/console_override.html_GETME\" title=\"console_override.html\">console_override.html<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/console_override.html\" title=\"Click picture\">web application<\/a> that scrolls like for a command line interactive terminal session &#8230;<\/p>\n<p><code><br \/>\n&lt;html&gt;<br \/>\n&lt;head&gt;<br \/>\n&lt;title&gt;Console Message Override - RJM Programming - July, 2022&lt;\/title&gt;<br \/>\n&lt;script type='text\/javascript'&gt;<br \/>\n var logElem=null;<br \/>\n var firstisnot=false;<br \/>\n var ii=0;<br \/>\n<br \/>\nfunction onl() {<br \/>\n  logElem=document.getElementById('log');<br \/>\n<br \/> <br \/>\n<font color=blue>console.log = msg =&gt; logElem.innerHTML += (firstisnot ? '&lt;span id=span' + ii + '&gt;&lt;\/span&gt;' + document.getElementById('topbit').innerHTML : '') + `${msg}&lt;br&gt;Brought to you via console.log at ` + new Date() + `&lt;br&gt;&lt;br&gt;`;<br \/>\nconsole.error = msg =&gt; logElem.innerHTML += `&lt;span class=\"error\"&gt;${msg}&lt;br&gt;Brought to you via console.error at ` + new Date() + `&lt;\/span&gt;&lt;br&gt;&lt;br&gt;`;<br \/>\nconsole.warn = msg =&gt; logElem.innerHTML += `&lt;span class=\"warn\"&gt;${msg}&lt;br&gt;Brought to you via console.warn at ` + new Date() + `&lt;span&gt;&lt;br&gt;&lt;br&gt;`;<br \/>\nconsole.info = msg =&gt; logElem.innerHTML += `&lt;span class=\"info\"&gt;${msg}&lt;br&gt;Brought to you via console.info at ` + new Date() + `&lt;\/span&gt;&lt;br&gt;&lt;br&gt;`;<\/font><br \/>\n<br \/>\n console.log('A console.log message.');<br \/>\n console.error('A console.error message.');<br \/>\n console.warn('A console.warn message.');<br \/>\n console.info('A console.info message.');<br \/>\n<br \/> <br \/>\n if (firstisnot) {<br \/>\n   document.getElementById('span' + ii).scrollIntoView();<br \/>\n }<br \/>\n ii++;<br \/>\n firstisnot=true;<br \/>\n<br \/> <br \/>\n setTimeout(onl, 4045);<br \/>\n}<br \/>\n<br \/>\n&lt;\/script&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body onload='onl();'&gt;<br \/>\n&lt;div id=topbit&gt;<br \/>\n&lt;h2&gt;Console Message Override&lt;\/h2&gt;<br \/>\n&lt;h3&gt;RJM Programming - July, 2022&lt;\/h3&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;h4 id=log&gt;&lt;\/h4&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<br \/>\n<\/code><\/p>\n<p> &#8230; <a onclick=\"document.getElementById('ifdn').src='\/\/www.rjmprogramming.com.au\/HTMLCSS\/console_override.html'; document.getElementById('ifdn').style.display='block'; \" style=\"cursor:pointer;text-decoration:underline;\">in action below<\/a> &#8230;<\/p>\n<p><iframe src=\"http:\/\/www.rjmprogramming.com.au\/About_Us.html\" id=\"ifdn\"  style=\"display:none;width:100%;height:900px;\"><\/iframe><\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d56293' onclick='var dv=document.getElementById(\"d56293\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/scrolling\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d56293' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday&#8217;s Screen Capture API Download Video Tutorial&#8216;a web application code, thanks to Using Screen Capture, used interesting Javascript Template Literals &#8230; Template literals are literals delimited with backtick (`) characters, allowing for multi-line strings, for string interpolation with embedded expressions, &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/scrolling-logging-template-literals-primer-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,37],"tags":[3221,576,652,4011,4013,716,717,1836,997,1917,1107,4012,1566,4014,1252,1319],"class_list":["post-56293","post","type-post","status-publish","format-standard","hentry","category-elearning","category-tutorials","tag-backtick","tag-html","tag-javascript","tag-literal","tag-literals","tag-log","tag-logging","tag-override","tag-programming","tag-scroll","tag-scrolling","tag-tagged-template","tag-template","tag-template-literal","tag-terminal","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/56293"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=56293"}],"version-history":[{"count":9,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/56293\/revisions"}],"predecessor-version":[{"id":56305,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/56293\/revisions\/56305"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=56293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=56293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=56293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}