It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://careercenter.pahcom.com/rss/feed.xml

  1. <!DOCTYPE html>
  2. <html lang="en">
  3.    <head>
  4.      <!-- Google Tag Manager -->
  5.      <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  6.      new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  7.      j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  8.      'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  9.      })(window,document,'script','dataLayer','GTM-NFM95BJ');</script>
  10.      <!-- End Google Tag Manager -->
  11.        <base href="https://careercenter.pahcom.com/">        <title>Page not found | Healthcare Management Jobs | PAHCOM Career Center</title>
  12.  
  13.        <meta name="description" content="Healthcare Management Jobs">
  14.  
  15.        <meta charset="UTF-8">
  16.        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5" >
  17.        <meta name="apple-mobile-web-app-capable" content="yes">
  18.        <meta http-equiv="X-UA-Compatible" content="IE=edge">
  19.  
  20.        <meta content="UpMdE56RPrzBK9ifGRKdX86RdtCcCKO9JXUBJpdU" name="csrf-token">
  21.  
  22.                <meta content="index,follow" name="robots">
  23.        
  24.        
  25.        <script>
  26.    function loadScripts(source, callback) {
  27.        if (!(source != null && (typeof source == 'string' || typeof source == 'object'))) return;
  28.        let src = typeof source == 'string' ? [source] : source;
  29.        let total = [];
  30.        let loaded = [];
  31.        let failed = [];
  32.        let fn = function (e) {
  33.            if (e.type == 'load') loaded.push(e.target.src);
  34.            else failed.push(e.target.src);
  35.            if ((loaded.length + failed.length) == total.length && typeof callback == 'function') callback(!!failed.length, loaded, failed);
  36.        };
  37.        let load = function (src) {
  38.            let s = document.createElement('script');
  39.            s.type = 'application/javascript';
  40.            s.src = src;
  41.            s.addEventListener('error', fn, false);
  42.            s.addEventListener('load', fn, false);
  43.            document.getElementsByTagName('head')[0].appendChild(s);
  44.            return s.src;
  45.        };
  46.        for (let i in src) {
  47.            let s = src[i].split(/[\s,]+/);
  48.            for (let j in s) if (total.indexOf(s[j]) < 0) total.push(load(s[j]));
  49.        }
  50.    }
  51.  
  52.    function loadStyles(source, callback) {
  53.        if (!(source != null && (typeof source == 'string' || typeof source == 'object'))) return;
  54.        let src = typeof source == 'string' ? [source] : source;
  55.        let total = [];
  56.        let loaded = [];
  57.        let failed = [];
  58.        let fn = function (e) {
  59.            if (e.type == 'load') loaded.push(e.target.src);
  60.            else failed.push(e.target.src);
  61.            if ((loaded.length + failed.length) == total.length && typeof callback == 'function') callback(!!failed.length, loaded, failed);
  62.        };
  63.        let load = function (src) {
  64.            let s = document.createElement('link');
  65.            s.rel = 'stylesheet';
  66.            s.href = src;
  67.            s.addEventListener('error', fn, false);
  68.            s.addEventListener('load', fn, false);
  69.            document.getElementsByTagName('head')[0].appendChild(s);
  70.            return s.src;
  71.        };
  72.        for (let i in src) {
  73.            let s = src[i].split(/[\s,]+/);
  74.            for (let j in s) if (total.indexOf(s[j]) < 0) total.push(load(s[j]));
  75.        }
  76.    }
  77.  
  78.    function trackEvent(url, data, method = 'GET') {
  79.        $.ajax({
  80.            url: url,
  81.            method: method,
  82.            data: data || {},
  83.            async: true,
  84.            cache: false,
  85.            success: (response) => {
  86.                let trackingCode = response.code || '';
  87.                $('body').append(trackingCode)
  88.            },
  89.        });
  90.    }
  91.  
  92.    function triggerEvent(name, element = document) {
  93.        if(!name) return;
  94.        const event = new Event(name);
  95.        element.dispatchEvent(event);
  96.    }
  97.  
  98.    if (typeof grecaptcha === 'undefined') {
  99.        grecaptcha = {};
  100.    }
  101.  
  102.    grecaptcha.alreadyLoaded = []
  103.    grecaptcha.loadFromCDN = function(url, params) {
  104.        if (! this.alreadyLoaded.includes(url)) {
  105.            this.alreadyLoaded.push(url);
  106.  
  107.            let script = document.createElement('script');
  108.            script.setAttribute('type', 'text/javascript');
  109.            script.setAttribute('src', url);
  110.            for (let i in params) {
  111.                script.setAttribute(params[i], '');
  112.            }
  113.  
  114.            document.body.appendChild(script);
  115.        }
  116.    }
  117.  
  118.    grecaptcha.ready = function(cb){
  119.        if (typeof grecaptcha === 'object' && typeof grecaptcha.execute === 'undefined') {
  120.            const c = '___grecaptcha_cfg';
  121.            window[c] = window[c] || {};
  122.            (window[c]['fns'] = window[c]['fns']||[]).push(cb);
  123.        } else {
  124.            setTimeout(function() {
  125.                cb();
  126.            }, 1000)
  127.        }
  128.    }
  129. </script>
  130.                    <!--link rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" href="https://use.fontawesome.com/releases/v5.15.3/css/all.css"-->
  131.            <link rel="stylesheet" href="themes/pahcom_ng/css/style.css?1712231403">
  132.        
  133.                    <script src="themes/nextgen/js/jquery.min.js?1549902715"></script>
  134.            <script src="themes/nextgen/js/bootstrap.min.js?1549902715"></script>
  135.            <script src="themes/nextgen/js/plugins.js?1549902715"></script>
  136.            <script src="js/common.min.js"></script>
  137.            <script>
  138.                $(function() {
  139.                    triggerEvent('jqueryReady');
  140.                    triggerEvent('bootstrapReady');
  141.                    triggerEvent('commonReady');
  142.                })
  143.            </script>
  144.        
  145.        <link href="themes/pahcom_ng/css/custom.css?1512742447" rel="stylesheet">
  146. <link href="themes/pahcom_ng/css/theme_style.min.css?1632755932" rel="stylesheet">
  147. <link rel="shortcut icon" type="text/css" href="themes/pahcom_ng/images/favicon.png?1609950883">
  148. <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700' rel='stylesheet' type='text/css'>
  149. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
  150. <script type="text/javascript" src="themes/pahcom_ng/js/theme_script.min.js?1679914544"></script>
  151. <link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet">
  152. <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Poppins:700,300,500,400|Raleway:700,700i,400i,400">
  153.  
  154.        <meta property="og:type" content="website">
  155.        <meta property="og:site_name" content="Professional Association of Health Care Office Management">
  156.  
  157.                    <meta property="og:title" content="Page not found | Healthcare Management Jobs | PAHCOM Career Center">
  158.            <meta property="og:description" content="Healthcare Management Jobs">
  159.            <meta property="og:image" content="https://careercenter.pahcom.com/themes/pahcom_ng/images/logo.png">
  160.            <meta property="og:url" content="https://careercenter.pahcom.com/rss/feed.xml">
  161.        
  162.        
  163.    </head>
  164.    <body>
  165.  
  166.    <!-- Google Tag Manager (noscript) -->
  167.    <noscript>
  168.        <iframe
  169.            title="Google Tag Manager"
  170.            src="https://www.googletagmanager.com/ns.html?id=GTM-NFM95BJ"
  171.            height="0"
  172.            width="0"
  173.            style="display:none;visibility:hidden">
  174.        </iframe>
  175.    </noscript>
  176.    <!-- End Google Tag Manager (noscript) -->
  177.    <!--Start top and Logo-->
  178.  
  179.    <div id="banner-header-wide-1"></div>
  180.  
  181. <div class="custom-wrapper custom-header">
  182.  
  183.    <svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="display:none" data-usage="social-icons-svg">
  184.        <symbol id="facebook-unauth-icon" viewBox="0 0 64 64"><path d="M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z"></path></symbol>
  185.        <symbol id="facebook-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M39.6,22l-2.8,0c-2.2,0-2.6,1.1-2.6,2.6V28h5.3l-0.7,5.3h-4.6V47h-5.5V33.3H24V28h4.6V24 c0-4.6,2.8-7,6.9-7c2,0,3.6,0.1,4.1,0.2V22z"></path></symbol>
  186.        <symbol id="youtube-unauth-icon" viewBox="0 0 64 64"><path d="M46.7,26c0,0-0.3-2.1-1.2-3c-1.1-1.2-2.4-1.2-3-1.3C38.3,21.4,32,21.4,32,21.4h0 c0,0-6.3,0-10.5,0.3c-0.6,0.1-1.9,0.1-3,1.3c-0.9,0.9-1.2,3-1.2,3S17,28.4,17,30.9v2.3c0,2.4,0.3,4.9,0.3,4.9s0.3,2.1,1.2,3 c1.1,1.2,2.6,1.2,3.3,1.3c2.4,0.2,10.2,0.3,10.2,0.3s6.3,0,10.5-0.3c0.6-0.1,1.9-0.1,3-1.3c0.9-0.9,1.2-3,1.2-3s0.3-2.4,0.3-4.9 v-2.3C47,28.4,46.7,26,46.7,26z M28.9,35.9l0-8.4l8.1,4.2L28.9,35.9z"></path></symbol>
  187.        <symbol id="youtube-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M47,33.1c0,2.4-0.3,4.9-0.3,4.9s-0.3,2.1-1.2,3c-1.1,1.2-2.4,1.2-3,1.3 C38.3,42.5,32,42.6,32,42.6s-7.8-0.1-10.2-0.3c-0.7-0.1-2.2-0.1-3.3-1.3c-0.9-0.9-1.2-3-1.2-3S17,35.6,17,33.1v-2.3 c0-2.4,0.3-4.9,0.3-4.9s0.3-2.1,1.2-3c1.1-1.2,2.4-1.2,3-1.3c4.2-0.3,10.5-0.3,10.5-0.3h0c0,0,6.3,0,10.5,0.3c0.6,0.1,1.9,0.1,3,1.3 c0.9,0.9,1.2,3,1.2,3s0.3,2.4,0.3,4.9V33.1z M28.9,35.9l8.1-4.2l-8.1-4.2L28.9,35.9z"></path></symbol>
  188.        <symbol id="linkedin-unauth-icon" viewBox="0 0 64 64"><path d="M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z"></path></symbol>
  189.        <symbol id="linkedin-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M25.8,44h-5.4V26.6h5.4V44z M23.1,24.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1 c1.7,0,3.1,1.4,3.1,3.1C26.2,22.9,24.8,24.3,23.1,24.3z M46,44h-5.4v-8.4c0-2,0-4.6-2.8-4.6c-2.8,0-3.2,2.2-3.2,4.5V44h-5.4V26.6 h5.2V29h0.1c0.7-1.4,2.5-2.8,5.1-2.8c5.5,0,6.5,3.6,6.5,8.3V44z"></path></symbol>
  190.        <symbol id="twitter-unauth-icon" viewBox="0 0 64 64"><path d="M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z"></path></symbol>
  191.        <symbol id="twitter-unauth-mask" viewBox="0 0 64 64"><path d="M0,0v64h64V0H0z M44.7,25.5c0,0.3,0,0.6,0,0.8C44.7,35,38.1,45,26.1,45c-3.7,0-7.2-1.1-10.1-2.9 c0.5,0.1,1,0.1,1.6,0.1c3.1,0,5.9-1,8.2-2.8c-2.9-0.1-5.3-2-6.1-4.6c0.4,0.1,0.8,0.1,1.2,0.1c0.6,0,1.2-0.1,1.7-0.2 c-3-0.6-5.3-3.3-5.3-6.4c0,0,0-0.1,0-0.1c0.9,0.5,1.9,0.8,3,0.8c-1.8-1.2-2.9-3.2-2.9-5.5c0-1.2,0.3-2.3,0.9-3.3 c3.2,4,8.1,6.6,13.5,6.9c-0.1-0.5-0.2-1-0.2-1.5c0-3.6,2.9-6.6,6.6-6.6c1.9,0,3.6,0.8,4.8,2.1c1.5-0.3,2.9-0.8,4.2-1.6 c-0.5,1.5-1.5,2.8-2.9,3.6c1.3-0.2,2.6-0.5,3.8-1C47.1,23.4,46,24.5,44.7,25.5z"></path></symbol>
  192.    </svg>
  193.  
  194.    <div class="header-inner d-flex align-items-center justify-content-between">
  195.        <div class="custom-logo">
  196.            <a href="https://my.pahcom.com/">
  197.                <img src="themes/pahcom_ng/images/header_logo.png?1609950883" alt="Logo" class="img-fluid img-responsive">
  198.            </a>
  199.        </div>
  200.        <div class="d-flex custom-header-actions align-items-center">
  201.            <div class="custom-header-nav d-flex align-items-center">
  202.                <div class="nav-item">
  203.                    <a href="/menu" data-animation-role="header-element">Menu</a>
  204.                </div>
  205.                <div class="nav-item">
  206.                    <a href="https://my.pahcom.com/forum?p=latest" data-animation-role="header-element">Forum</a>
  207.                </div>
  208.                <div class="nav-item">
  209.                    <a href="https://my.pahcom.com/join" target="_blank" data-animation-role="header-element">Join</a>
  210.                </div>
  211.                <div class="nav-item">
  212.                    <a href="https://my.pahcom.com/account/login" target="_blank" data-animation-role="header-element">Login</a>
  213.                </div>
  214.            </div>
  215.            <div class="custom-social d-flex align-items-center justify-content-center">
  216.                <a class="icon icon--fill" href="https://www.facebook.com/PAHCOM" target="_blank" aria-label="">
  217.                    <svg viewBox="23 23 64 64">
  218.                        <use xlink:href="#facebook-unauth-icon" width="110" height="110"></use>
  219.                    </svg>
  220.                </a>
  221.                <a class="icon icon--fill" href="https://www.linkedin.com/company/259855/" target="_blank" aria-label="LinkedIn">
  222.                    <svg viewBox="23 23 64 64">
  223.                        <use xlink:href="#linkedin-unauth-icon" width="110" height="110"></use>
  224.                    </svg>
  225.                </a>
  226.                <a class="icon icon--fill" href="https://twitter.com/PAHCOM" target="_blank" aria-label="">
  227.                    <svg viewBox="23 23 64 64">
  228.                        <use xlink:href="#twitter-unauth-icon" width="110" height="110"></use>
  229.                    </svg>
  230.                </a>
  231.            </div>
  232.        </div>
  233.        <div class="custom-menu-toggle-wrapper">
  234.            <button class="custom-menu-toggle">
  235.                <span class="line first-line"></span>
  236.                <span class="line second-line"></span>
  237.            </button>
  238.        </div>
  239.    </div>
  240. </div>
  241. <header>
  242.    <nav class="navbar navbar-inverse bg-dark">
  243.        <div class="container">
  244.            <div class="navbar-header">
  245.                <button
  246.                    type="button"
  247.                    class="navbar-toggle collapsed"
  248.                    data-toggle="collapse"
  249.                    data-target="#header-navbar"
  250.                    aria-expanded="false"
  251.                    aria-controls="navbar"
  252.                    aria-label="Toggle mobile navigation"
  253.                >
  254.                    <span class="icon-bar"></span>
  255.                    <span class="icon-bar"></span>
  256.                    <span class="icon-bar"></span>
  257.                </button>
  258.                            </div>
  259.  
  260.            <div
  261.                class="collapse navbar-collapse guest-menu"
  262.                id="header-navbar"
  263.            >
  264.                
  265. <div class="pull-left flex-sm-container clearfix">
  266.                                        <ul class="nav navbar-nav guest-menu">
  267.                                        <li id="menu-item-2968" class="current">
  268.                                    <a href="/"
  269.                        ex-data                                            >
  270.                                            Home                                        </a>
  271.                            </li>
  272.                                                        <li id="menu-item-2970" class="">
  273.                                    <a href="/jobs"
  274.                                                                    >
  275.                                            Search                                        </a>
  276.                            </li>
  277.                                                        <li id="menu-item-2973" class="">
  278.                                    <a href="/employer-directory"
  279.                                                                    >
  280.                                            Directory                                        </a>
  281.                            </li>
  282.                                                        <li id="menu-item-2976" class="">
  283.                                    <a href="/contact-us"
  284.                                                                    >
  285.                                            Contact Us                                        </a>
  286.                            </li>
  287.                                                        <li id="menu-item-3002" class="">
  288.                                    <a href="/career-resources"
  289.                                                                    >
  290.                                            Career Resources                                        </a>
  291.                            </li>
  292.                                                                </ul>
  293.                                        <p class="navbar-btn pull-left">
  294.                <a href="/employer-offers"
  295.                    class="btn btn-primary pricing-btn"                                    >
  296.                    Pricing                </a>
  297.            </p>
  298.                        </div>
  299.  
  300.                
  301.    <nav class="nav navbar-right flex-sm-container">
  302.        <ul class="nav navbar-nav mx-0">
  303.            <li class="register-top">
  304.                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  305.                    Register                    <span class="caret"></span>
  306.                </a>
  307.                <ul class="dropdown-menu reg-choose">
  308.                    <li><a href="/register-seeker">Job Seekers</a></li>
  309.                                            <li><a href="/register-employer">Employers</a></li>
  310.                                    </ul>
  311.            </li>
  312.            <li>
  313.                <a class="sign-in" href="/sign-in">
  314.                    <i class="fas fa-lock"></i>
  315.                    Sign In                </a>
  316.            </li>
  317.            
  318. <script>
  319.    var scriptsLanguage = 'EN';
  320. </script>
  321.  
  322.        </ul>
  323.        <p class="navbar-btn pull-left">
  324.            <a class="btn btn-primary post-job" href="/employer-offers">Post a Job</a>
  325.        </p>
  326.    </nav>
  327.            </div>
  328.        </div>
  329.    </nav>
  330. </header>
  331.  
  332. <div class="container view-404">
  333.    <div class="row">
  334.        <div class="col-md-6 col-md-offset-3 col-sm-12 col-sm-offset-0 text-center">
  335.            <div class="page-header">
  336.                <h1>Not found</h1>
  337.            </div>
  338.            <p>The requested URL was not found on this server.</p>
  339.            <p>If you need assistance you can</p>
  340.            <p>
  341.                <a href="/" class="btn btn-primary"><i class="glyphicon glyphicon-home"></i>  visit our home page</a>
  342.                <a href="/contact-us" class="btn btn-default"><i class="glyphicon glyphicon-envelope"></i>  contact us</a>
  343.            </p>
  344.        </div>
  345.    </div>
  346. </div>
  347.    <div id="banner-footer-wide-top-1"></div>
  348.  
  349.  
  350. <div class="ws-footer" id="ws-footer">
  351.    <div class="bg-darken footer index mt-2 py-2">
  352.        <div class="container">
  353.            
  354.            <div class="row">
  355.                <div class="col-md-12 text-center text-white copyrights">
  356.                    <p>Powered by <a href="https://www.webscribble.com" target="_blank" class="underline text-white">Web Scribble Solutions</a>, Inc.</p>
  357.                </div>
  358.            </div>
  359.        </div>
  360.    </div>
  361. </div>
  362.  
  363. <footer>
  364.    <div class="custom-wrapper custom-footer">
  365.    <div class="custom-footer-inner">
  366.        <div class="custom-container">
  367.            <div class="row">
  368.                <div class="col sqs-col-12 span-12">
  369.                    <p style="text-align:center;white-space:pre-wrap;" class="sqsrte-small"><a href="https://my.pahcom.com/contact" target="_blank">Contact</a>          <a href="https://my.pahcom.com/menu">Site Menu</a>          <a href="https://www.pahcom.com/education/calendar">Education</a>          <a href="https://www.pahcom.com/corporate/directory.php">Shop Vendors</a>          <a href="https://cert.pahcom.com/">Certification</a>         <a href="https://my.pahcom.com/terms">Terms</a></p>
  370.                    <p style="text-align:center;white-space:pre-wrap;" class="sqsrte-small">&copy; 2024 PAHCOM | Professional Association of Health Care Office Management</p>
  371.                </div>
  372.            </div>
  373.        </div>
  374.    </div>
  375. </div>
  376. </footer>
  377.  
  378.  
  379. <script defer src="themes/nextgen/js/main.min.js?1711032843"></script>
  380.  
  381. <!-- NG-3557 -->
  382.  
  383. <!-- NG-3557 -->
  384.  
  385.    
  386.  
  387.  
  388.  
  389.  
  390. <script>
  391.  
  392. </script>
  393.  
  394.  
  395.  
  396.  
  397. <div id="alert-popus-container" class="sticky-alert-container position-fixed fixed-bottom">
  398.    <div class="container-fluid">
  399.        <div class="row">
  400.                        <div id="cookieconsent-wrapper"></div>
  401.        </div>
  402.    </div>
  403. </div>
  404.  
  405. <script>
  406.    window.FontAwesomeConfig = {
  407.        autoReplaceSvg: "nest",
  408.        autoA11y: true,
  409.        autoAddCss: true,
  410.        keepOriginalSource: false
  411.    }
  412. </script>
  413. <script async src="https://use.fontawesome.com/releases/v5.15.3/js/all.js"></script>
  414.  
  415.  
  416. <script>
  417.    const templates = document.querySelectorAll('template');
  418.  
  419.    function processTemplate(element) {
  420.        const parents = document.querySelectorAll(element.dataset.parent);
  421.        const position = element.dataset.position ? element.dataset.position : 'afterend';
  422.  
  423.        parents.forEach(function(parent){
  424.            if(position === 'instead'){
  425.                parent.outerHTML = element.innerHTML;
  426.            }else{
  427.                parent.insertAdjacentHTML(position, element.innerHTML);
  428.            }
  429.        });
  430.  
  431.        if ( typeof element.dataset.cleanup === 'undefined' || element.dataset.cleanup === true || element.dataset.cleanup === 'true' ) {
  432.            element.remove();
  433.        }
  434.    }
  435.  
  436.    function addXMLRequestCallback(callback){
  437.        let nativeOpen = XMLHttpRequest.prototype.open;
  438.        let callbacks = XMLHttpRequest.callbacks = [];
  439.        XMLHttpRequest.prototype.open = function () {
  440.            callbacks.forEach(callback => callback.apply(this, arguments));
  441.            nativeOpen.apply(this, arguments);
  442.        };
  443.  
  444.        XMLHttpRequest.callbacks.push(callback);
  445.    }
  446.  
  447.    templates.forEach(function(element){
  448.        if ( !element.dataset.parent ) {
  449.            console.warn('Wrong syntax, ignoring this template', element);
  450.            return false;
  451.        }
  452.  
  453.        if ( !element.dataset.trigger || element.dataset.trigger === 'instant' ) {
  454.            setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 );
  455.        } else if ( element.dataset.trigger === 'event' ) {
  456.            if ( !element.dataset.event ){
  457.                console.warn('Wrong syntax, absent event name to listen, ignoring this template', element);
  458.                return false;
  459.            }
  460.            document.addEventListener( element.dataset.event, () => {
  461.                setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 );
  462.            });
  463.        } else if ( element.dataset.trigger === 'xhr' ) {
  464.            addXMLRequestCallback( function( method, url ) {
  465.                if ( element.dataset.url || element.dataset.method ) {
  466.                    if ( element.dataset.url && element.dataset.method ) {
  467.                        if ( element.dataset.method === method && url.toString().includes(element.dataset.url) ) {
  468.                            setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 );
  469.                        }
  470.                    } else if ( element.dataset.url && url.includes(element.dataset.url) ) {
  471.                        setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 );
  472.                    } else if ( element.dataset.method && element.dataset.method === method ){
  473.                        setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 );
  474.                    }
  475.                } else {
  476.                    setTimeout(()=>{ processTemplate(element) }, element.dataset.delay ? element.dataset.delay : 0 );
  477.                }
  478.            });
  479.        }
  480.    });
  481. </script>
  482. </body>
  483. </html>
  484.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda