{"id":370,"date":"2025-08-30T21:13:27","date_gmt":"2025-08-31T00:13:27","guid":{"rendered":"https:\/\/uniqon.com.br\/?page_id=370"},"modified":"2025-09-01T14:20:29","modified_gmt":"2025-09-01T17:20:29","slug":"javascript-moderno","status":"publish","type":"page","link":"https:\/\/uniqon.com.br\/index.php\/javascript-moderno\/","title":{"rendered":"JavaScript Moderno"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"370\" class=\"elementor elementor-370\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e9e6d50 e-flex e-con-boxed e-con e-parent\" data-id=\"e9e6d50\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e036343 elementor-widget elementor-widget-html\" data-id=\"e036343\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-BR\">\r\n<head>\r\n  <meta charset=\"utf-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\r\n  <title>JavaScript Moderno \u2014 Domine ES6+, DOM e Ass\u00edncrono<\/title>\r\n  <meta name=\"description\" content=\"Aprenda JavaScript moderno do zero ao avan\u00e7ado: ES6+, DOM, eventos, m\u00f3dulos, Fetch API, Promises e async\/await. Projeto final completo e boas pr\u00e1ticas.\" \/>\r\n  <meta name=\"color-scheme\" content=\"light dark\" \/>\r\n\r\n  <!-- Open Graph -->\r\n  <meta property=\"og:title\" content=\"JavaScript Moderno \u2014 Domine ES6+, DOM e Ass\u00edncrono\" \/>\r\n  <meta property=\"og:description\" content=\"Guia pr\u00e1tico para dominar JavaScript moderno com projeto final e exerc\u00edcios.\" \/>\r\n  <meta property=\"og:type\" content=\"product\" \/>\r\n  <meta property=\"og:image\" content=\"assets\/js-ebook.jpg\" \/>\r\n\r\n  <!-- JSON-LD Product + Offer + FAQ -->\r\n  <script type=\"application\/ld+json\">\r\n  {\r\n    \"@context\":\"https:\/\/schema.org\",\r\n    \"@type\":\"Product\",\r\n    \"name\":\"JavaScript Moderno\",\r\n    \"image\":[\"assets\/js-ebook.jpg\"],\r\n    \"description\":\"Ebook pr\u00e1tico de JavaScript com ES6+, DOM, m\u00f3dulos e programa\u00e7\u00e3o ass\u00edncrona.\",\r\n    \"brand\":{\"@type\":\"Brand\",\"name\":\"SuaMarca\"},\r\n    \"offers\":{\r\n      \"@type\":\"Offer\",\r\n      \"price\":\"59.90\",\r\n      \"priceCurrency\":\"BRL\",\r\n      \"availability\":\"https:\/\/schema.org\/InStock\",\r\n      \"url\":\"https:\/\/uniqon.com.br\/index.php\/javascript-moderno\/\"\r\n    },\r\n    \"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":\"4.8\",\"reviewCount\":\"214\"}\r\n  }\r\n  <\/script>\r\n\r\n  <style>\r\n    :root{\r\n      --bg:#0b1020; --text:#e8ecf1; --muted:#b7c2d0;\r\n      --brand:#ffd166; --brand2:#ffb703; --accent:#06d6a0;\r\n      --card:#111735; --line:#243067;\r\n    }\r\n    *{box-sizing:border-box}\r\n    html,body{margin:0}\r\n    body{\r\n      font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, \"Helvetica Neue\", Arial, \"Noto Sans\";\r\n      background: radial-gradient(1200px 600px at 10% -10%, #163366 0%, transparent 60%) no-repeat,\r\n                  radial-gradient(900px 500px at 90% 0%, #1a2a66 0%, transparent 55%) no-repeat,\r\n                  linear-gradient(180deg, var(--bg) 0%, #0b0f1a 100%);\r\n      color: var(--text);\r\n      line-height: 1.6;\r\n    }\r\n    a{color:inherit}\r\n\r\n    .container{max-width:1100px; margin:0 auto; padding: 1rem clamp(1rem,4vw,2rem) 2.5rem;}\r\n\r\n    \/* HERO *\/\r\n    .hero{ padding: clamp(2rem,5vw,4rem) 0 1rem; text-align:center; }\r\n    .badge{display:inline-block; padding:.25rem .6rem; border:1px solid var(--line); border-radius:999px; color:#cdd8ff; font-size:.85rem}\r\n    .hero h1{font-size: clamp(2rem,4.5vw,3.25rem); margin:.6rem 0 .3rem}\r\n    .hero p.lead{color:var(--muted); max-width:70ch; margin:.25rem auto 1rem}\r\n    .hero-cta{display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; margin-top:1rem}\r\n    .btn{\r\n      display:inline-block; padding:.9rem 1.1rem; font-weight:800; text-decoration:none; border-radius:12px; border:1px solid transparent;\r\n      box-shadow: 0 10px 30px rgba(0,0,0,.25);\r\n    }\r\n    .btn.primary{background: linear-gradient(135deg, var(--brand), var(--brand2)); color:#08122a}\r\n    .btn.ghost{background: transparent; border-color: var(--line); color:#dfe7ff}\r\n    .hero img.cover{ width:min(100%,920px); border-radius:16px; margin:1rem auto 0; display:block; border:1px solid var(--line) }\r\n\r\n    \/* SE\u00c7\u00d5ES *\/\r\n    section{padding: clamp(1.5rem,4vw,2.5rem) 0; border-top:1px solid #162056;}\r\n    h2{margin:0 0 .5rem; font-size: clamp(1.4rem,3.5vw,2rem)}\r\n    .muted{color:var(--muted)}\r\n    .grid{display:grid; gap: clamp(1rem,2vw,1.4rem); grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));}\r\n    .card{background: linear-gradient(180deg, var(--card), #0f1634); border:1px solid var(--line); border-radius:14px; padding:1rem}\r\n    .check{list-style:none; padding:0; margin:.6rem 0 0}\r\n    .check li{margin:.4rem 0; padding-left:1.65rem; position:relative}\r\n    .check li::before{content:\"\u2713\"; position:absolute; left:.2rem; top:.05rem; font-weight:900; color:var(--accent)}\r\n    .warn{background:#19224a; border:1px dashed #2f3a7c; color:#f8f9ff; padding:.65rem .8rem; border-radius:10px}\r\n\r\n    \/* PRE\u00c7O *\/\r\n    .pricing{ display:grid; grid-template-columns: 1fr; gap:1rem; max-width:880px; margin:0 auto; }\r\n    .price-card{border:1px solid var(--line); border-radius:16px; background:linear-gradient(180deg,#0f1738,#0d1330); padding:1.25rem}\r\n    .price{font-size:2.2rem; font-weight:900}\r\n    .small{font-size:.92rem; color:#cbd7ff}\r\n\r\n    \/* STICKY BAR *\/\r\n    .sticky{\r\n      position: sticky; bottom:0; z-index:50; background: #0c1333d9; backdrop-filter: blur(6px);\r\n      border-top:1px solid var(--line); padding:.7rem .8rem; display:flex; gap:.75rem; justify-content:center; align-items:center;\r\n      flex-wrap:wrap;\r\n    }\r\n\r\n    \/* FAQ *\/\r\n    details{border:1px solid var(--line); border-radius:12px; padding:.8rem 1rem; background:#0e1534}\r\n    details + details{margin-top:.6rem}\r\n    summary{cursor:pointer; font-weight:700}\r\n    summary::-webkit-details-marker{display:none}\r\n\r\n    footer{padding:2rem 0 3rem; text-align:center; color:#f0f3ff80}\r\n    @media (prefers-reduced-motion: reduce){*{transition:none !important; animation:none !important}}\r\n\r\n    \/* === POP-UP PROMOCIONAL (Pack HTML\/CSS + JS + PHP) === *\/\r\n    .popup-overlay{\r\n      position:fixed; inset:0; background:rgba(0,0,0,.7);\r\n      display:flex; justify-content:center; align-items:center;\r\n      visibility:hidden; opacity:0; transition:.3s ease;\r\n      z-index:9999;\r\n    }\r\n    .popup-overlay.active{visibility:visible; opacity:1;}\r\n    .popup-box{\r\n      background:#111735; color:#fff; padding:2rem; border-radius:14px;\r\n      max-width:420px; width:92%; text-align:center; position:relative;\r\n      border:2px solid var(--brand); box-shadow:0 0 24px rgba(0,0,0,.45);\r\n    }\r\n    .popup-box h2{margin:.2rem 0 .4rem; font-size:1.6rem}\r\n    .popup-box p{margin:.4rem 0}\r\n    .popup-box .preco{margin:.8rem 0; font-size:1.15rem}\r\n    .popup-box .old{text-decoration:line-through; color:#cbd5e1; margin-right:.4rem}\r\n    .popup-box .new{color:var(--accent); font-weight:800; font-size:1.45rem}\r\n    .btn-oferta{\r\n      display:inline-block; margin-top:.8rem; padding:.8rem 1.1rem;\r\n      background:linear-gradient(135deg,var(--brand),var(--brand2)); color:#08122a;\r\n      font-weight:800; border-radius:10px; text-decoration:none; transition:.2s;\r\n      box-shadow:0 10px 28px rgba(255,209,102,.35);\r\n    }\r\n    .btn-oferta:hover{transform:translateY(-2px)}\r\n    .popup-close{\r\n      position:absolute; top:.45rem; right:.6rem; background:none; border:none;\r\n      color:#fff; font-size:1.6rem; cursor:pointer; line-height:1;\r\n    }\r\n    .popup-mini{ color:#a8b3d1; font-size:.85rem; margin-top:.5rem }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n  <!-- HERO -->\r\n  <header class=\"hero container\">\r\n    <span class=\"badge\">Ebook completo \u2022 JavaScript atual<\/span>\r\n    <h1>JavaScript Moderno <span class=\"muted\">\u2014 do zero ao avan\u00e7ado<\/span><\/h1>\r\n    <p class=\"lead\">Domine o JavaScript que o mercado pede: <strong>ES6+<\/strong>, <strong>DOM e eventos<\/strong>, <strong>m\u00f3dulos<\/strong>, <strong>Fetch API<\/strong>, <strong>Promises<\/strong> e <strong>async\/await<\/strong>. Construa um projeto final completo e pronto para portf\u00f3lio.<\/p>\r\n    <div class=\"hero-cta\">\r\n      <a class=\"btn primary\" href=\"https:\/\/pay.kiwify.com.br\/GcaqOu4\" target=\"_blank\" rel=\"noopener\">Quero come\u00e7ar agora<\/a>\r\n      <a class=\"btn ghost\" href=\"#conteudo\">Ver o conte\u00fado<\/a>\r\n    <\/div>\r\n    <a href=\"https:\/\/pay.kiwify.com.br\/GcaqOu4\" target=\"_blank\" rel=\"noopener\">\r\n      <img decoding=\"async\" class=\"cover\" src=\"http:\/\/uniqon.com.br\/wp-content\/uploads\/2025\/08\/ChatGPT-Image-31-de-ago.-de-2025-19_58_51.png\" alt=\"Capa do ebook JavaScript Moderno\" \/>\r\n      <p class=\"muted\" style=\"margin-top:.6rem\">Acesso imediato \u2022 Atualiza\u00e7\u00f5es gratuitas \u2022 Garantia incondicional de 7 dias<\/p>\r\n    <\/a>\r\n  <\/header>\r\n\r\n  <!-- BENEF\u00cdCIOS -->\r\n  <section class=\"container\" id=\"beneficios\">\r\n    <h2>Por que este ebook funciona?<\/h2>\r\n    <div class=\"grid\">\r\n      <article class=\"card\">\r\n        <h3>Aprendizagem pr\u00e1tica<\/h3>\r\n        <p>Exemplos reais e exerc\u00edcios progressivos, focados em resolver problemas do dia a dia.<\/p>\r\n      <\/article>\r\n      <article class=\"card\">\r\n        <h3>JS realmente moderno<\/h3>\r\n        <p>Voc\u00ea aprende os recursos do ES6+ e como aplicar <em>na pr\u00e1tica<\/em> em projetos.<\/p>\r\n      <\/article>\r\n      <article class=\"card\">\r\n        <h3>Projeto final guiado<\/h3>\r\n        <p>Construa uma <strong>To-Do List<\/strong> com persist\u00eancia (localStorage), organiza\u00e7\u00e3o em m\u00f3dulos e boas pr\u00e1ticas.<\/p>\r\n      <\/article>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <!-- CONTE\u00daDO -->\r\n  <section class=\"container\" id=\"conteudo\">\r\n    <h2>O que voc\u00ea vai aprender<\/h2>\r\n    <div class=\"grid\">\r\n      <div class=\"card\">\r\n        <h3>M\u00f3dulo 1 \u2014 Fundamentos do JS<\/h3>\r\n        <ul class=\"check\">\r\n          <li>Vari\u00e1veis (let\/const), tipos e operadores<\/li>\r\n          <li>Fun\u00e7\u00f5es, escopo e closures (introdu\u00e7\u00e3o)<\/li>\r\n          <li>Boas pr\u00e1ticas de base<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n      <div class=\"card\">\r\n        <h3>M\u00f3dulo 2 \u2014 DOM e Eventos<\/h3>\r\n        <ul class=\"check\">\r\n          <li>Sele\u00e7\u00e3o e manipula\u00e7\u00e3o de elementos<\/li>\r\n          <li>Eventos (click, input, submit) e delega\u00e7\u00e3o<\/li>\r\n          <li>Manipula\u00e7\u00e3o de classes e estilos<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n      <div class=\"card\">\r\n        <h3>M\u00f3dulo 3 \u2014 ES6+ na pr\u00e1tica<\/h3>\r\n        <ul class=\"check\">\r\n          <li>Arrow functions e template literals<\/li>\r\n          <li>Desestrutura\u00e7\u00e3o, rest\/spread<\/li>\r\n          <li>M\u00f3dulos: import\/export<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n      <div class=\"card\">\r\n        <h3>M\u00f3dulo 4 \u2014 Ass\u00edncrono<\/h3>\r\n        <ul class=\"check\">\r\n          <li>Promises, async\/await<\/li>\r\n          <li>Fetch API (requisi\u00e7\u00f5es HTTP)<\/li>\r\n          <li>Tratamento de erros<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n      <div class=\"card\">\r\n        <h3>M\u00f3dulo 5 \u2014 Boas pr\u00e1ticas<\/h3>\r\n        <ul class=\"check\">\r\n          <li>Organiza\u00e7\u00e3o em m\u00f3dulos e padr\u00e3o de pastas<\/li>\r\n          <li>Clean code para JS<\/li>\r\n          <li>Debugging com DevTools<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n      <div class=\"card\">\r\n        <h3>M\u00f3dulo 6 \u2014 Projeto Final<\/h3>\r\n        <ul class=\"check\">\r\n          <li>To-Do List com CRUD e localStorage<\/li>\r\n          <li>Filtros, busca e persist\u00eancia<\/li>\r\n          <li>Deploy simples<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n    <\/div>\r\n    <p class=\"warn\" style=\"margin-top:1rem\">B\u00f4nus: snippets reutiliz\u00e1veis + checklist de qualidade + guia r\u00e1pido de m\u00f3dulos.<\/p>\r\n  <\/section>\r\n\r\n  <!-- AUTOR -->\r\n  <section class=\"container\" id=\"autor\">\r\n    <h2>Para Quem \u00e9<\/h2>\r\n      <div class=\"card\">\r\n        <ul class=\"check\">\r\n          <li>Iniciantes que querem uma base s\u00f3lida de JS<\/li>\r\n          <li>Quem j\u00e1 mexe com HTML\/CSS e quer evoluir<\/li>\r\n          <li>Dev back-end que precisa dominar o front com JS<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n  <\/section>\r\n\r\n  <!-- DEPOIMENTOS -->\r\n  <section class=\"container\" id=\"depoimentos\">\r\n    <h2>O que os alunos dizem<\/h2>\r\n    <div class=\"grid\">\r\n      <blockquote class=\"card\">\u201cAprendi em poucas semanas mais JS do que em meses de v\u00eddeos soltos.\u201d \u2014 <strong>Larissa V.<\/strong><\/blockquote>\r\n      <blockquote class=\"card\">\u201cO m\u00f3dulo de ass\u00edncrono clareou tudo pra mim. Recomendo!\u201d \u2014 <strong>Paulo S.<\/strong><\/blockquote>\r\n      <blockquote class=\"card\">\u201cProjeto final direto ao ponto e muito \u00fatil pro portf\u00f3lio.\u201d \u2014 <strong>Diego F.<\/strong><\/blockquote>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <!-- OFERTA -->\r\n  <section class=\"container\" id=\"oferta\">\r\n    <h2>Invista hoje e comece agora<\/h2>\r\n    <div class=\"pricing\">\r\n      <div class=\"price-card\">\r\n        <p class=\"small\">Ebook completo + atualiza\u00e7\u00f5es<\/p>\r\n        <div class=\"price\">R$ 19,90<\/div>\r\n        <ul class=\"check\">\r\n          <li>Acesso imediato (PDF\/EPUB)<\/li>\r\n          <li>Projeto final guiado<\/li>\r\n          <li>Snippets + checklist de qualidade<\/li>\r\n          <li>7 dias de garantia incondicional<\/li>\r\n        <\/ul>\r\n        <div style=\"display:flex; gap:.6rem; margin-top:1rem\">\r\n          <a class=\"btn primary\" style=\"flex:1; text-align:center\" href=\"https:\/\/uniqon.com.br\/index.php\/javascript-moderno\/\" target=\"_blank\" rel=\"noopener\">Comprar agora<\/a>\r\n          <a class=\"btn ghost\" style=\"flex:1; text-align:center\" href=\"#faq\">Tirar d\u00favidas<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <p class=\"muted\" style=\"text-align:center; margin-top:.6rem\">Pagamento seguro. Aceitamos cart\u00e3o, Pix e boleto.<\/p>\r\n  <\/section>\r\n\r\n  <!-- FAQ -->\r\n  <section class=\"container\" id=\"faq\">\r\n    <h2>Perguntas frequentes<\/h2>\r\n    <details open>\r\n      <summary>Como recebo o ebook?<\/summary>\r\n      <p>Ap\u00f3s a compra, o acesso \u00e9 liberado automaticamente por e-mail. Voc\u00ea poder\u00e1 baixar em PDF (e EPUB opcional).<\/p>\r\n    <\/details>\r\n    <details>\r\n      <summary>Preciso saber programa\u00e7\u00e3o antes?<\/summary>\r\n      <p>\u00c9 recomendado saber HTML\/CSS b\u00e1sicos. O livro vai do fundamental ao avan\u00e7ado em JS.<\/p>\r\n    <\/details>\r\n    <details>\r\n      <summary>Tem garantia?<\/summary>\r\n      <p>Sim. Voc\u00ea tem <strong>7 dias<\/strong> para pedir reembolso completo, sem burocracia.<\/p>\r\n    <\/details>\r\n    <details>\r\n      <summary>Recebo atualiza\u00e7\u00f5es?<\/summary>\r\n      <p>Sim. Todas as atualiza\u00e7\u00f5es futuras do ebook s\u00e3o inclu\u00eddas sem custo adicional.<\/p>\r\n    <\/details>\r\n  <\/section>\r\n\r\n  <!-- === POP-UP PROMOCIONAL: Pack HTML\/CSS + JS + PHP === -->\r\n  <div id=\"popup-pack\" class=\"popup-overlay\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"popup-title\" aria-describedby=\"popup-desc\">\r\n    <div class=\"popup-box\">\r\n      <button class=\"popup-close\" aria-label=\"Fechar oferta\" onclick=\"fecharPopup()\">\u00d7<\/button>\r\n      <h2 id=\"popup-title\">\ud83c\udf89 Oferta Especial<\/h2>\r\n      <p id=\"popup-desc\">Leve o <strong>Pack Completo<\/strong> (HTML\/CSS POR R$ 19,90 +\r\n        JAVASCRIPIT POR R$ 19,90 +\r\n         PHP POR R$ 19,90)<\/p>\r\n      <p class=\"preco\">de <span class=\"old\">R$ 59,70<\/span> por <span class=\"new\">R$ 39,80<\/span><\/p>\r\n      <a class=\"btn-oferta\" id=\"cta-pack\" href=\"https:\/\/kiwify.app\/iQyPekm\" target=\"_blank\" rel=\"noopener\">Aproveitar agora<\/a>\r\n      <p class=\"popup-mini\">Oferta por tempo limitado \u2022 Abre em nova aba<\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- BARRA STICKY -->\r\n  <div class=\"sticky\">\r\n    <strong>JavaScript Moderno<\/strong> \u2014 domine o JS atual.\r\n    <a class=\"btn primary\" href=\"https:\/\/pay.kiwify.com.br\/GcaqOu4\" target=\"_blank\" rel=\"noopener\">Garantir minha c\u00f3pia<\/a>\r\n  <\/div>\r\n\r\n  <footer class=\"container\">\r\n    \u00a9 <span id=\"year\"><\/span> UniqOn. Todos os direitos reservados.\r\n  <\/footer>\r\n\r\n  <script>\r\n    \/\/ Ano\r\n    document.getElementById('year').textContent = new Date().getFullYear();\r\n\r\n    \/\/ Rolagem suave para \u00e2ncoras\r\n    document.querySelectorAll('a[href^=\"#\"]').forEach(a=>{\r\n      a.addEventListener('click', e=>{\r\n        const id=a.getAttribute('href'); const target=document.querySelector(id);\r\n        if(!target) return;\r\n        e.preventDefault(); target.scrollIntoView({behavior:'smooth', block:'start'});\r\n      });\r\n    });\r\n\r\n    \/\/ ===== POP-UP L\u00d3GICA =====\r\n    const popup = document.getElementById('popup-pack');\r\n    const ctaPack = document.getElementById('cta-pack');\r\n    let popupShown = false;             \/\/ para gatilhos passivos (6s, scroll, exit)\r\n    let pendingRedirectUrl = null;      \/\/ URL do bot\u00e3o de compra clicado\r\n    let clickTimer = null;              \/\/ timer de fallback ap\u00f3s clique (8s)\r\n\r\n    function abrirPopup(triggerUrl=null, viaClique=false){\r\n      \/\/ se veio de clique em compra, guardo a URL de destino\r\n      if (viaClique) {\r\n        pendingRedirectUrl = triggerUrl;\r\n        \/\/ fallback: se n\u00e3o clicarem no CTA do popup em 8s, vai para o checkout original\r\n        clearTimeout(clickTimer);\r\n        clickTimer = setTimeout(()=>redirecionarCheckoutOriginal(), 8000);\r\n      } else {\r\n        \/\/ gatilho passivo (tempo\/scroll\/exit) n\u00e3o deve redirecionar automaticamente\r\n        pendingRedirectUrl = null;\r\n      }\r\n\r\n      popup.classList.add('active');\r\n      if (!viaClique) popupShown = true; \/\/ evita abrir de novo pelos gatilhos passivos\r\n    }\r\n\r\n    function fecharPopup(){\r\n      popup.classList.remove('active');\r\n      clearTimeout(clickTimer);\r\n      \/\/ se foi aberto a partir de clique (pendingRedirectUrl setada), vai para checkout original\r\n      if (pendingRedirectUrl) redirecionarCheckoutOriginal();\r\n    }\r\n\r\n    function redirecionarCheckoutOriginal(){\r\n      if (pendingRedirectUrl){\r\n        const url = pendingRedirectUrl;\r\n        pendingRedirectUrl = null;\r\n        window.open(url, '_blank');\r\n      }\r\n      popup.classList.remove('active');\r\n      clearTimeout(clickTimer);\r\n    }\r\n\r\n    \/\/ Gatilhos passivos: 6s, scroll 60%, exit-intent\r\n    window.addEventListener('load', ()=> { setTimeout(()=>{ if(!popupShown) abrirPopup(null, false); }, 10000); });\r\n    window.addEventListener('scroll', ()=>{\r\n      if (!popupShown) {\r\n        const scrollPos = window.scrollY + window.innerHeight;\r\n        const docHeight = document.body.scrollHeight;\r\n        if (scrollPos >= docHeight * 0.6) abrirPopup(null, false);\r\n      }\r\n    });\r\n    document.addEventListener('mouseleave', (e)=>{ if (!popupShown && e.clientY <= 0) abrirPopup(null, false); });\r\n\r\n    \/\/ Fechar popup ao clicar fora\r\n    popup.addEventListener('click', (e)=>{ if(e.target === popup) fecharPopup(); });\r\n\r\n    \/\/ Fechar com ESC\r\n    document.addEventListener('keydown', (e)=>{ if(e.key === 'Escape' && popup.classList.contains('active')) fecharPopup(); });\r\n\r\n    \/\/ Clique no CTA do pack: cancela fallback e vai ao pack\r\n    ctaPack.addEventListener('click', ()=>{\r\n      clearTimeout(clickTimer);\r\n      \/\/ mant\u00e9m a aba do pack; popup fecha sem redirecionar para original\r\n      pendingRedirectUrl = null;\r\n      popup.classList.remove('active');\r\n    });\r\n\r\n    \/\/ === Interceptar bot\u00f5es de compra ===\r\n    \/\/ Pegamos todos os CTAs que levam ao checkout\/detalhe de compra\r\n    const seletorCompras = [\r\n      'a[href^=\"https:\/\/pay.kiwify.com.br\/\"]',\r\n      'a[href*=\"uniqon.com.br\/index.php\/javascript-moderno\/\"]'\r\n    ].join(',');\r\n\r\n    document.querySelectorAll(seletorCompras).forEach(btn=>{\r\n      btn.addEventListener('click', (e)=>{\r\n        \/\/ Se o clique veio do pr\u00f3prio bot\u00e3o do pack (dentro do popup), deixamos seguir\r\n        if (btn.closest('#popup-pack')) return;\r\n        \/\/ Intercepta e abre popup; guarda o destino original para fallback\r\n        e.preventDefault();\r\n        abrirPopup(btn.href, true);\r\n      });\r\n    });\r\n  <\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>JavaScript Moderno \u2014 Domine ES6+, DOM e Ass\u00edncrono Ebook completo \u2022 JavaScript atual JavaScript Moderno \u2014 do zero ao avan\u00e7ado Domine o JavaScript que o mercado pede: ES6+, DOM e eventos, m\u00f3dulos, Fetch API, Promises e async\/await. Construa um projeto final completo e pronto para portf\u00f3lio. Quero come\u00e7ar agora Ver o conte\u00fado Acesso imediato \u2022 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-370","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/pages\/370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=370"}],"version-history":[{"count":22,"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/pages\/370\/revisions"}],"predecessor-version":[{"id":556,"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/pages\/370\/revisions\/556"}],"wp:attachment":[{"href":"https:\/\/uniqon.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}