10 August 2017,
 Off
Organic Traffic

RSS (Really Simple Syndication) is a standardized format used by online publishers to syndicate their content to other websites and services. An RSS document, also known as a feed, is an XML document carrying the content that a publisher wishes to distribute.

Read Also: How to Create RSS Feed Logo with CSS3

RSS feeds are available on almost all online news websites and blogs for their readers to stay up-to-date with their contents. They can also be found on non-text based websites such as YouTube, where you can use the feed of a YouTube channel to be informed of the latest videos.

Programs that access these feeds, and read and display their contents are called RSS readers. You can create a simple RSS reader program in JavaScript. In this tutorial, we’ll see how to.

RSS reader app demoRSS reader app demo

Structure of an RSS feed

An RSS feed has a root element called , similar to the tag found in HTML documents. Inside the tag, there is a element, kind of like in HTML, that includes many sub-elements containing the distributed content of the website.

A feed usually carries some basic information such as the title, URL, and description of the website and of the individual updated posts, articles, or other contents of that website. These information are found in </code>, <code><link></code>, and <code><description></code> elements, respectively.</p> <p>When these tags are <strong>directly present inside <code><channel></code></strong>, they hold the title, URL, and description of the website. When they’re <strong>present inside <code><item></code></strong> that <strong>holds the information about the updated posts</strong>, they represent the same information as before but that of the individual contents that each <code><item></code> represent.</p> <p>There are also some <strong>optional elements</strong> that may be present in an RSS feed, providing supplementary information such as images or copyrights on the distributed content. You can learn about them in this <strong>RSS 2.0 specification</strong> at <a target="_blank" href="https://cyber.harvard.edu/rss/rss.html">cyber.harvard.edu</a>.</p> <p>Here’s a sample of how the <strong>RSS feed of a website</strong> might look like:</p> <pre name="code"> <rss version="2.0"> <channel> <link>http://www.hongkiat.com/</link> <description>Design Tips, Tutorial and Inspirations</description> <language>en-us</language> <item> <description>Ever wondered how many CSS rules are in a stylesheet? Or have you ever wanted to see…</description> <pubDate>18/05/2017</pubDate> <link>http://www.hongkiat.com/blog/css-stylesheet-with-css-stats/</link> </item> <item> <description>Amazon isn't stranger to the concept of smart home systems with an embedded digital assistant. After all, the…</description> <pubDate>17/05/2017</pubDate> <link>http://www.hongkiat.com/blog/alexa-device-amazon-echo-show/</link> </item> </channel> </rss> </pre> <h4>Fetching the feed</h4> <p>We need to <strong>fetch the feed</strong> with our RSS reader application. On a website, the URL of an RSS feed can be <strong>found inside the <code><link></code> tag using the <code>application/rss+xml</code> type</strong>. For example, you’ll find the following RSS feed link on Hongkiat.com.</p> <pre name="code"> <link rel="alternate" type="application/rss+xml" title="Hongkiat.com » Feed" href="http://www.hongkiat.com/blog/feed/"> </pre> <p>First, let’s see how to <strong>get the feed URL of a website</strong> using JavaScript.</p> <pre name="code"> fetch(websiteUrl).then((res) => { res.text().then((htmlTxt) => { var domParser = new DOMParser() let doc = domParser.parseFromString(htmlTxt, 'text/html') var feedUrl = doc.querySelector('link[type="application/rss+xml"]').href }) }).catch(() => console.error('Error in fetching the website')) </pre> <p>The <strong><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch"><code>fetch()</code></a></strong> method is a global method that <strong>asynchronously fetches a resource</strong>. It takes the URL of the resource as an argument (the URL of the website in our code). It <strong>returns a <code>Promise</code></strong> object, so when the method successfully fetches the website (i.e. the <code>Promise</code> is fulfilled), the first function inside the <code>then()</code> statement <strong>handles the fetched response</strong> (<code>res</code> in above code).</p> <p><strong>Read Also:</strong> <a target="_blank" href="http://www.hongkiat.com/blog/javascript-promise-object/">Getting Started with JavaScript Promises</a></p> <p>The fetched response is then <strong>fully read into a text string</strong> using the <strong><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/API/Body/text"><code>text()</code></a></strong> method. This text represents the <strong>HTML text of our fetched website</strong>. Like <code>fetch()</code>, <code>text()</code> also <strong>returns a <code>Promise</code> object</strong>. So, when it successfully creates a response text from the response stream, <code>then()</code> will handle that response text (<code>htmlText</code> in above code).</p> <p>Once HTML text of the website is available, we use <strong><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/API/DOMParser"><code>DOMParser API</code></a></strong> to <strong>parse it into a DOM document</strong>. <code>DOMParser</code> parses an XML/HTML text string into a DOM document. Its method, <code>parseFromString()</code>, takes <strong>two arguments</strong>: the <strong>text to be parsed</strong> and the <strong>content type</strong>.</p> <p>Then, from the created DOM document, we <strong>find the <code>href</code> value of the relevant <code><link></code> tag</strong> using the <code><a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector" target="_blank">querySelector()</a></code> method in order to get the URL of the feed.</p> <h4>Parsing and displaying the feed</h4> <p>Once we got the feed URL of the website, we need to <strong>fetch and read the RSS document</strong> found at that URL.</p> <pre name="code"> fetch(feedUrl).then((res) => { res.text().then((xmlTxt) => { var domParser = new DOMParser() let doc = domParser.parseFromString(xmlTxt, 'text/xml') doc.querySelectorAll('item').forEach((item) => { let h1 = document.createElement('h1') h1.textContent = item.querySelector('title').textContent document.querySelector('output').appendChild(h1) }) }) }) </pre> <p>In the same way as we fetched and parsed the website, now we <strong>get and parse the XML feed into a DOM document</strong>. To achieve this, we use the <code>'text/xml'</code> content type in the <code>parseFromString()</code> method.</p><div class="zPnR6vNp" style="clear:both;float:left;width:100%;margin:0 0 20px 0;"><strong><a title="Get Organic Traffic" href="http://www.realvisits.org/pricing">Need Clicks? Need Growth Hacking ? Need Sales? Need Panda Recovery? Need Google & Alexa Rank Boost ? <br> We offer Organic Traffic as a service, get one of our packages and we send you up to 240k Organic Visits / month, with a positive impact on SERPs, to get higher page-ranks, to boost keyword rankings and to increase your website visibility online. We offer the solution in Growth Hacking, are you ready to start?</a></strong> <a title="Get Organic Traffic Now" href="http://www.realvisits.org/" target="_blank"><img src="http://www.realvisits.org/wp-content/uploads/2014/10/seo-realvisits.png" <img class="size-medium wp-image-7548 aligncenter" alt="Organic Traffic" width="600" height="100" /></a></div> <p>In the parsed document, we <strong>select all the <code><item></code> elements</strong> using the <code><a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll" target="_blank">querySelectorAll</a></code> method and <strong>loop through each</strong>.</p> <p>Inside each element, we can <strong>access tags</strong> like <code><title></code>, <code><description></code>, and <code><link></code>, that are carrying the feed content. And, our simple RSS reader application is done, you can style the content of the fetched feeds as you desire.</p> <h4>Github demo</h4> <p>You can check out the <strong>more detailed version</strong> of the code used in this post in our <a target="_blank" href="https://github.com/hongkiat/js-rss-reader">Github repo</a>. The more detailed version <strong>fetches three feeds</strong> (<a href="https://hacks.mozilla.org/" target="_blank">Mozilla Hacks</a>, Hongkiat, and the <a href="https://webkit.org/blog/" target="_blank">Webkit blog</a>) <strong>using a JSON file</strong> and also adds some CSS styles to the RSS reader.</p> <p class="wpematico_credit"><small>Powered by <a href="http://www.wpematico.com" target="_blank">WPeMatico</a></small></p> <a title="Buy Organic Traffic / Increase Web Traffic" href="http://www.realvisits.org/pricing" target="_blank"><img src="http://www.realvisits.org/wp-content/uploads/2014/10/banner_posts.png" <img class="size-medium wp-image-7548 aligncenter" alt="Buy Organic Traffic" width="600" height="100" /></a> </div> </div> <div id="comments"> <p class="nocomments">Comments are closed.</p> </div><!-- #comments --> </div><div class="clearfix"></div> <!-- Sidebar --> </div> </div> <!-- #Footer --> <footer id="Footer"> <div class="container widgets"> </div> <div class="container"> <div class="column one bottom_addons"> <div class="copyrights"> <p> © 2014-2020 <strong>Organic Traffic Service</strong>. All Rights Reserved.<br /> Powered by <a target="_blank" href="https://www.realvisits.org">RealVisits</a>. Created by <a target="_blank" href="https://www.realvisits.org">RV Organic Traffic Service</a> </p> </div> <div class="menu_bottom"> <ul id="menu-footer-menu" class="menu"><li id="menu-item-6069" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6069"><a href="https://www.realvisits.org/pricing/">Pricing</a></li> <li id="menu-item-6146" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-6146"><a href="https://www.realvisits.org/whats-new/">What’s New?</a></li> <li id="menu-item-11514" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11514"><a href="https://www.realvisits.org/terms-and-conditions/">Terms and Conditions</a></li> <li id="menu-item-27228" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-27228"><a href="https://www.realvisits.org/privacy-policy/">Privacy & Cookies Policy</a></li> <li id="menu-item-6064" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6064"><a href="https://www.realvisits.org/contact/">Contact Us</a></li> </ul> </div> </div> </div> </footer> </div> <a id="back_to_top" href="#"><i class="icon-circle-arrow-up"></i></a> <!-- wp_footer() --> <div id="cookie-law-info-bar"><span>This website uses cookies to improve your experience. We'll assume you're ok with this. Please accept our Cookie & Privacy Policy <a href="#" data-cli_action="accept" id="cookie_action_close_header" class="medium cli-plugin-button cli-plugin-main-button cookie_action_close_header cli_action_button" >Accept</a> <a href="https://www.realvisits.org/privacy-policy/" id="CONSTANT_OPEN_URL" target="_blank" class="cli-plugin-main-link" >Read More</a></span></div><div id="cookie-law-info-again"><span id="cookie_hdr_showagain">Privacy & Cookies Policy</span></div><div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div> <div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div> <div class="ws-plugin--s2member-s-badge"> <a href="http://www.s2member.com/" onclick="window.open('http://www.s2member.com/s-badges/s-details.php?v=2&site_url=https%3A%2F%2Fwww.realvisits.org', '_popup', 'width=770,height=720,left='+((screen.width/2)-(770/2))+',screenX='+((screen.width/2)-(770/2))+',top='+((screen.height/2)-(720/2))+',screenY='+((screen.height/2)-(720/2))+',location=0,menubar=0,toolbar=0,scrollbars=0,resizable=1'); return false;" title="s2Member®"><img src="//www.s2member.com/s-badges/s-badge.php?v=2&site_url=https%3A%2F%2Fwww.realvisits.org" width="180" height="58" style="border:0; width:180px; height:58px;" alt="s2Member®" title="s2Member® (Security for WordPress®)" /></a> </div> <center><span id="siteseal"></span></center><!-- Panel --> <div id="toppanel" > <!-- Login / Register links on top --> <div class="tab"> <ul class="login" style="width:150px;"> <!-- Login / Register --> <li><a id="login" href="#"><small>Have an account?</small> Log In</a></li> </ul> </div> <!-- / top --> </div> <!--END panel --> <!-- Login Form --> <div id="loginpanel" style="display:none;right:0;"> <div class="content"> <form class="clearfix" action="https://www.realvisits.org/wp-login.php" method="post"> <label class="grey" for="log">Login Name:</label> <input class="field" type="text" name="log" id="log" value="" size="23" /> <label class="grey" for="pwd">Password:</label> <input class="field" type="password" name="pwd" id="pwd" size="23" /> <label><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> Remember Me</label> <div class="clear"></div> <input type="submit" name="submit" value="Login" class="bt_login" /> <input type="hidden" name="redirect_to" value="/how-to-create-a-rss-reader-app-in-javascript/"/> <a class="lost-pwd" href="https://www.realvisits.org/wp-login.php?action=lostpassword">Lost Password</a> </form> </div> </div> <!-- /login --> <noscript id="wpfc-google-fonts"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Raleway:300,400,400italic,700" > <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Raleway:300,400,400italic,700" > <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Raleway:300,400,400italic,700" > <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Patua+One" > </noscript> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/jquery.js?ver=1.12.4-wp'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/cookie-law-info/public/js/cookie-law-info-public.js?ver=1.7.0'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/revslider/public/assets/js/jquery.themepunch.tools.min.js?ver=5.4.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/revslider/public/assets/js/jquery.themepunch.revolution.min.js?ver=5.4.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/sidebar-login/assets/js/jquery.blockUI.min.js?ver=2.70'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/sidebar-login/assets/js/sidebar-login.min.js?ver=2.7.3'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-form-move-tracker.js?ver=1.9'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/wp-sliding-login-register-panel/js/slide.js?ver=5.2'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/ui/core.min.js?ver=1.11.4'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/ui/widget.min.js?ver=1.11.4'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/ui/mouse.min.js?ver=1.11.4'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/ui/sortable.min.js?ver=1.11.4'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/ui/tabs.min.js?ver=1.11.4'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/ui/accordion.min.js?ver=1.11.4'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/themes/pindol/js/fancybox/jquery.fancybox-1.3.4.js?ver=1.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/themes/pindol/js/sliders/responsiveslides.js?ver=1.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/themes/pindol/js/sliders/jquery.jcarousel.min.js?ver=1.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/themes/pindol/js/jquery.isotope.min.js?ver=1.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/themes/pindol/js/jquery.hoverdir.js?ver=1.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/themes/pindol/js/mfn-menu.js?ver=1.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/jquery/jquery.form.min.js?ver=4.2.1'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/themes/pindol/js/scripts.js?ver=1.6'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/comment-reply.min.js?ver=5.2'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/nice-login-register-widget/js/pw-login-widget.js?ver=1.3.10'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-content/plugins/nice-login-register-widget/js/ajax-authentication.js?ver=1.3.10'></script> --> <!-- <script type='text/javascript' data-cfasync="false" src='https://www.realvisits.org/wp-content/plugins/s2member/s2member-o.php?ws_plugin__s2member_js_w_globals=1&qcABC=1&ver=170722-170722-123391305'></script> --> <!-- <script type='text/javascript' src='https://www.realvisits.org/wp-includes/js/wp-embed.min.js?ver=5.2'></script> --> <script>document.addEventListener('DOMContentLoaded',function(){function wpfcgl(){var wgh=document.querySelector('noscript#wpfc-google-fonts').innerText, wgha=wgh.match(/<link[^\>]+>/gi);for(i=0;i<wgha.length;i++){var wrpr=document.createElement('div');wrpr.innerHTML=wgha[i];document.body.appendChild(wrpr.firstChild);}}wpfcgl();});</script> <script type="text/javascript">var switchTo5x=true;</script> <script type='text/javascript'> /* <![CDATA[ */ var Cli_Data = {"nn_cookie_ids":[],"cookielist":[]}; var log_object = {"ajax_url":"https:\/\/www.realvisits.org\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type='text/javascript'> /* <![CDATA[ */ var sidebar_login_params = {"ajax_url":"https:\/\/www.realvisits.org\/wp-admin\/admin-ajax.php","force_ssl_admin":"1","is_ssl":"1","i18n_username_required":"Please enter your username","i18n_password_required":"Please enter your password","error_class":"sidebar_login_error"}; /* ]]> */ </script> <script type="text/javascript"> var cli_flush_cache=1; </script> <script type='text/javascript'> /* <![CDATA[ */ var ajax_object = {"ajax_url":"https:\/\/www.realvisits.org\/wp-admin\/admin-ajax.php"}; var pwLogWi_messages = {"ajax_request_fails":"Ajax request fails","ajax_unknown_error":"An unknown error occurred while trying to connect to the server.<br>Please refresh the page and try again."}; /* ]]> */ </script> <script async src='https://www.google-analytics.com/analytics.js'></script> <script type="application/ld+json">{"@context":"https:\/\/schema.org\/","@type":"Article","@id":"https:\/\/www.realvisits.org\/how-to-create-a-rss-reader-app-in-javascript\/","url":"https:\/\/www.realvisits.org\/how-to-create-a-rss-reader-app-in-javascript\/","name":"How to Create a RSS Reader App in JavaScript | Organic Traffic Service","headline":"RSS (Really Simple Syndication) is a standardized format used by online publishers to syndicate their content","mainEntityOfPage":{"@type":"WebPage","url":"https:\/\/www.realvisits.org\/how-to-create-a-rss-reader-app-in-javascript\/"},"datePublished":"2017-08-10T05:13:29+00:00","dateModified":"2017-08-10T05:13:29+00:00","image":{"@type":"ImageObject","url":"https:\/\/www.realvisits.org\/wp-content\/uploads\/2017\/08\/rss-reader-demo.jpg","height":"679","width":"646"},"author":{"@type":"Person","url":"http:\/\/www.realvisits.org","name":"admin"},"publisher":{"@type":"Organization","url":"https:\/\/www.realvisits.org\/how-to-create-a-rss-reader-app-in-javascript\/","name":"Real Visits : Organic Traffic Service","logo":{"@type":"ImageObject","url":"https:\/\/www.realvisits.org\/wp-content\/uploads\/2014\/05\/Logo-RealVisits-final.png"},"description":"We offer the best solution to boost your overall organic traffic. We can send millions of visits to your website and your organic traffic will rise dramatically."}}</script> <script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script> <script type="text/javascript">stLight.options({publisher: "ur-6568e777-919c-a5dd-ac31-98a6fa2e6b2d"}); </script> <script data-cfasync="false" type="text/javascript">//<![CDATA[ var gtm4wp_datalayer_name = "dataLayer"; var dataLayer = dataLayer || []; //]]> </script> <script src='//www.realvisits.org/wp-content/cache/wpfc-minified/jy0pylrk/c0cig.js' type="text/javascript"></script> <script> (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:1067438,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); </script> <script> (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:1067438,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); </script> <script data-cfasync="false" type="text/javascript">//<![CDATA[ dataLayer.push({"pageTitle":"How to Create a RSS Reader App in JavaScript | ","pagePostType":"post","pagePostType2":"single-post","pageCategory":["howto"],"pagePostAuthor":"admin"});//]]> </script> <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <script type="text/javascript">function setREVStartSize(e){ try{ var i=jQuery(window).width(),t=9999,r=0,n=0,l=0,f=0,s=0,h=0; if(e.responsiveLevels&&(jQuery.each(e.responsiveLevels,function(e,f){f>i&&(t=r=f,l=e),i>f&&f>r&&(r=f,n=e)}),t>r&&(l=n)),f=e.gridheight[l]||e.gridheight[0]||e.gridheight,s=e.gridwidth[l]||e.gridwidth[0]||e.gridwidth,h=i/s,h=h>1?1:h,f=Math.round(h*f),"fullscreen"==e.sliderLayout){var u=(e.c.width(),jQuery(window).height());if(void 0!=e.fullScreenOffsetContainer){var c=e.fullScreenOffsetContainer.split(",");if (c) jQuery.each(c,function(e,i){u=jQuery(i).length>0?u-jQuery(i).outerHeight(!0):u}),e.fullScreenOffset.split("%").length>1&&void 0!=e.fullScreenOffset&&e.fullScreenOffset.length>0?u-=jQuery(window).height()*parseInt(e.fullScreenOffset,0)/100:void 0!=e.fullScreenOffset&&e.fullScreenOffset.length>0&&(u-=parseInt(e.fullScreenOffset,0))}f=u}else void 0!=e.minHeight&&f<e.minHeight&&(f=e.minHeight);e.c.closest(".rev_slider_wrapper").css({height:f}) }catch(d){console.log("Failure at Presize of Slider:"+d)} };</script> <script type="text/javascript"> //<![CDATA[ cli_cookiebar_settings='{"animate_speed_hide":"500","animate_speed_show":"500","background":"#fff","border":"#444","border_on":false,"button_1_button_colour":"#000","button_1_button_hover":"#000000","button_1_link_colour":"#fff","button_1_as_button":true,"button_1_new_win":false,"button_2_button_colour":"#333","button_2_button_hover":"#292929","button_2_link_colour":"#444","button_2_as_button":false,"button_3_button_colour":"#000","button_3_button_hover":"#000000","button_3_link_colour":"#fff","button_3_as_button":true,"button_3_new_win":false,"button_4_button_colour":"#000","button_4_button_hover":"#000000","button_4_link_colour":"#fff","button_4_as_button":true,"font_family":"inherit","header_fix":false,"notify_animate_hide":true,"notify_animate_show":false,"notify_div_id":"#cookie-law-info-bar","notify_position_horizontal":"right","notify_position_vertical":"bottom","scroll_close":false,"scroll_close_reload":false,"accept_close_reload":false,"reject_close_reload":false,"showagain_tab":true,"showagain_background":"#fff","showagain_border":"#000","showagain_div_id":"#cookie-law-info-again","showagain_x_position":"100px","text":"#000","show_once_yn":false,"show_once":"10000","logging_on":false,"as_popup":false,"popup_overlay":true,"bar_heading_text":""}'; //]]> </script> <script async type="text/javascript" src="https://seal.godaddy.com/getSeal?sealID=Ts33oMabuc9uK2NBIndozaYvVSxKbbAHBYgYJkHK74PRoKb9jxWCWE8vkPOY"></script> <script> var getElementsByClassName=function(a,b,c){if(document.getElementsByClassName){getElementsByClassName=function(a,b,c){c=c||document;var d=c.getElementsByClassName(a),e=b?new RegExp("\\b"+b+"\\b","i"):null,f=[],g;for(var h=0,i=d.length;h<i;h+=1){g=d[h];if(!e||e.test(g.nodeName)){f.push(g)}}return f}}else if(document.evaluate){getElementsByClassName=function(a,b,c){b=b||"*";c=c||document;var d=a.split(" "),e="",f="http://www.w3.org/1999/xhtml",g=document.documentElement.namespaceURI===f?f:null,h=[],i,j;for(var k=0,l=d.length;k<l;k+=1){e+="[contains(concat(' ', @class, ' '), ' "+d[k]+" ')]"}try{i=document.evaluate(".//"+b+e,c,g,0,null)}catch(m){i=document.evaluate(".//"+b+e,c,null,0,null)}while(j=i.iterateNext()){h.push(j)}return h}}else{getElementsByClassName=function(a,b,c){b=b||"*";c=c||document;var d=a.split(" "),e=[],f=b==="*"&&c.all?c.all:c.getElementsByTagName(b),g,h=[],i;for(var j=0,k=d.length;j<k;j+=1){e.push(new RegExp("(^|\\s)"+d[j]+"(\\s|$)"))}for(var l=0,m=f.length;l<m;l+=1){g=f[l];i=false;for(var n=0,o=e.length;n<o;n+=1){i=e[n].test(g.className);if(!i){break}}if(i){h.push(g)}}return h}}return getElementsByClassName(a,b,c)}, dropdowns = getElementsByClassName( 'dropdown-menu' ); for ( i=0; i<dropdowns.length; i++ ) dropdowns[i].onchange = function(){ if ( this.value != '' ) window.location.href = this.value; } </script> <script defer src='//www.realvisits.org/wp-content/cache/wpfc-minified/g27ej9lx/abz5p.js' type="text/javascript"></script> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.realvisits.org\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.2"}}; !function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340],[55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings); </script> </body> </html><!-- WP Fastest Cache file was created in 1.6447639465332 seconds, on 23-09-20 22:09:48 --><!-- need to refresh to see cached version -->