Como modificar o valor do temporizador JavaScript para um jogo de digitação usando botões HTML

Como modificar o valor do temporizador JavaScript para um jogo de digitação usando botões HTML
Como modificar o valor do temporizador JavaScript para um jogo de digitação usando botões HTML

Ajuste dinâmico do temporizador para digitar jogos usando botões

Em um jogo de digitação, controlar o ritmo do jogo é crucial para garantir uma experiência envolvente ao usuário. Um fator importante é o cronômetro, que determina quanto tempo o usuário tem para completar o jogo ou desafio de digitação. Ao permitir que os usuários ajustem o cronômetro do jogo por meio de botões HTML simples, você pode dar a eles mais controle sobre o jogo.

Este artigo mostrará como criar uma solução em JavaScript que permite aos jogadores escolher entre diferentes configurações de cronômetro usando botões. Por exemplo, selecionar o botão '30s' ajustará o cronômetro para 30 segundos, enquanto clicar no botão '60s' o alterará para 60 segundos.

A função JavaScript pegará o valor do botão clicado e atualizará o cronômetro e o título do jogo dinamicamente. Esse tipo de flexibilidade pode aprimorar a experiência do usuário, tornando o jogo mais personalizável e divertido para diferentes níveis de habilidade.

Ao final deste guia, você terá um recurso de ajuste de cronômetro totalmente funcional usando HTML e JavaScript. Também abordaremos como atualizar o valor do cronômetro exibido no título da página para refletir a duração selecionada do cronômetro.

Comando Exemplo de uso
document.querySelector() Usado para selecionar o elemento HTML para atualizar dinamicamente o título da guia do navegador. Este método é específico para selecionar elementos com base em seu seletor CSS e aqui ajuda a alterar o título da página com base no valor do temporizador selecionado.</td> </tr> <tr> <td>addEventListener()</td> <td>Vincula um evento específico (por exemplo, clique) a um elemento de botão. Neste contexto, é usado para acionar a função changeTimer() quando um usuário clica em um botão, permitindo a interação dinâmica com as configurações do temporizador.</td> </tr> <tr> <td>innerText</td> <td>Esta propriedade permite modificar o texto visível dentro de um elemento HTML. Nesta solução, é utilizado para atualizar o valor do timer no título da página quando um botão é clicado.</td> </tr> <tr> <td>onClick</td> <td>Um atributo de manipulador de eventos embutido usado na abordagem alternativa para anexar a função changeTimer() diretamente ao evento de clique do botão. Isso permite uma maneira mais simples e menos modular de atualizar o temporizador dinamicamente.</td> </tr> <tr> <td>test()</td> <td>Este método é usado em testes unitários com Jest. Ele define um caso de teste onde a função que está sendo testada (por exemplo, changeTimer()) é avaliada para garantir que o cronômetro seja atualizado corretamente. Ele garante que o código se comporte conforme esperado em diferentes cenários.</td> </tr> <tr> <td>expect()</td> <td>Um comando Jest que verifica se o valor real (como o cronômetro atualizado) corresponde ao valor esperado. É usado em testes de unidade para verificar se gameTime e document.title são atualizados corretamente após um clique de botão.</td> </tr> <tr> <td>toBe()</td> <td>Outro comando Jest que verifica a igualdade estrita. Ele garante que após chamar changeTimer(), o tempo de jogo seja exatamente o esperado (por exemplo, 30.000 ms por 30 segundos).</td> </tr> <tr> <td>getElementById()</td> <td>Usado para selecionar botões específicos por seus IDs (por exemplo, 'trinta', 'sessenta'). Este método é importante para anexar ouvintes de eventos aos botões e acionar a mudança dinâmica do temporizador em resposta à interação do usuário.</td> </tr></table><h3 id="dev1">Criando temporizadores dinâmicos usando botões JavaScript e HTML</h3><div class="bordersh3"></div><p>Os scripts fornecidos acima são projetados para permitir que um usuário ajuste dinamicamente o cronômetro do jogo em um jogo de digitação clicando em botões HTML. Inicialmente declaramos uma variável <b>tempo de jogo</b>, que mantém o tempo em milissegundos (30 segundos por padrão, multiplicado por 1.000 para converter em milissegundos). A principal funcionalidade reside no <b>alterarTemporizador</b> função, que atualiza o valor do temporizador com base no botão clicado. Este método recebe o valor do botão (por exemplo, 30, 60 ou 90) e atualiza o tempo de jogo variável em conformidade. Além disso, o script atualiza o título da página para refletir a duração do cronômetro selecionada, deixando claro aos usuários quanto tempo eles têm.</p><p>Para o comportamento dinâmico, utilizamos ouvintes de eventos, especificamente o <b>addEventListener</b> comando. Isso permite que o script reaja quando um usuário clica em qualquer um dos botões. Cada botão recebe um ID e, quando clicado, aciona o <b>alterarTemporizador</b> função, passando o respectivo valor de tempo. Essa abordagem é útil para lidar com vários botões de forma eficiente, sem a necessidade de JavaScript embutido repetitivo na estrutura HTML. O script também inclui uma opção de fallback onde você pode usar manipuladores de eventos embutidos como <b>onClick</b> se a simplicidade for preferida à modularidade.</p><p>Na solução alternativa, vinculamos diretamente o <b>onClick</b> evento para os botões. Este método executa o <b>alterarTemporizador</b> funcionam diretamente no botão que está sendo clicado. É uma abordagem simples, mas carece da flexibilidade do método do ouvinte de eventos. A simplicidade deste método é útil para aplicações menores e menos complexas. No entanto, para um código mais escalonável, os ouvintes de eventos oferecem mais flexibilidade e permitem atualizações mais fáceis do script sem modificar diretamente a estrutura HTML. Ambos os métodos visam resolver o mesmo problema, que é ajustar o cronômetro e atualizar o título dinamicamente com base na seleção do usuário.</p><p>Por fim, implementamos testes unitários usando Jest, um framework de testes JavaScript. O <b>teste</b> funções são cruciais para validar se o cronômetro é atualizado corretamente. Ao testar vários cenários, como se o cronômetro se ajusta para 30 segundos, 60 segundos ou 90 segundos, esses testes de unidade garantem a exatidão do script. Comandos como <b>esperar</b> e <b>ser</b> são usados ​​para verificar se o valor real do temporizador e o título da página correspondem aos resultados esperados. Esta fase de teste garante que a lógica do seu temporizador esteja funcionando corretamente em diferentes casos de uso, proporcionando confiança na robustez da sua solução.<div id="script0"><h3>Alterando o valor do temporizador com botões HTML para um jogo de digitação</h3><div class="bordersh3"></div><p class="langprog">Abordagem front-end baseada em JavaScript com atualização dinâmica de tempo e ajuste de título</p><pre class="language-javascript"><code>// Solution 1: Using event listeners to change timer value dynamically</code> <code>let gameTime = 30 * 1000; // Default timer set to 30 seconds</code> <code>const titleElement = document.querySelector('title');</code> <code>function changeTimer(value) {</code> <code> gameTime = value * 1000; // Update timer to selected value</code> <code> titleElement.innerText = value + 's'; // Update the title</code> <code>}</code> <code>// Attach event listeners to buttons</code> <code>document.getElementById('thirty').addEventListener('click', () => changeTimer(30));</code> <code>document.getElementById('sixty').addEventListener('click', () => changeTimer(60));</code> <code>document.getElementById('ninety').addEventListener('click', () => changeTimer(90));</code> <code>// HTML Buttons:</code> <code>// <button id="thirty" type="button">30s</button></code> <code>// <button id="sixty" type="button">60s</button></code> <code>// <button id="ninety" type="button">90s</button></code> </pre></div><div id="script1"><h3>Abordagem alternativa: usando funções HTML e JavaScript embutidas</h3><div class="bordersh3"></div><p class="langprog">JavaScript embutido em HTML com chamadas de função diretas ao clicar no botão</p><pre class="language-javascript"><code><script></code> <code>let gameTime = 30 * 1000;</code> <code>function changeTimer(value) {</code> <code> gameTime = value * 1000;</code> <code> document.title = value + 's';</code> <code>}</code> <code></script></code> <code><button onClick="changeTimer(30)">30s</button></code> <code><button onClick="changeTimer(60)">60s</button></code> <code><button onClick="changeTimer(90)">90s</button></code> </pre></div><div id="script2"><h3>Testes unitários para alterações de valores de temporizador em diferentes ambientes</h3><div class="bordersh3"></div><p class="langprog">Testes de unidade baseados em JavaScript usando Jest para validação de ambiente front-end</p><pre class="language-javascript"><code>// Jest Test Cases</code> <code>test('Timer should update to 30 seconds', () => {</code> <code> changeTimer(30);</code> <code> expect(gameTime).toBe(30000);</code> <code> expect(document.title).toBe('30s');</code> <code>});</code> <code>test('Timer should update to 60 seconds', () => {</code> <code> changeTimer(60);</code> <code> expect(gameTime).toBe(60000);</code> <code> expect(document.title).toBe('60s');</code> <code>});</code> <code>test('Timer should update to 90 seconds', () => {</code> <code> changeTimer(90);</code> <code> expect(gameTime).toBe(90000);</code> <code> expect(document.title).toBe('90s');</code> <code>});</code> </pre></div></p><h3>Aprimorando a interação do jogo com personalização do temporizador</h3><div class="bordersh3"></div><p>Outro aspecto a considerar ao alterar o cronômetro em um jogo de digitação é a experiência geral do usuário e a interface. Além de ajustar o cronômetro do jogo por meio de botões, é importante dar aos jogadores feedback visual sobre o cronômetro selecionado. Isso pode ser conseguido atualizando outros elementos da página, como uma exibição de contagem regressiva. Depois que um botão é clicado para definir o cronômetro, o cronômetro de contagem regressiva deve iniciar imediatamente, fornecendo feedback em tempo real ao usuário. Isso garante que a interação seja suave e intuitiva, tornando o jogo mais envolvente.</p><p>Para implementar isso, você pode usar JavaScript <b>setInterval</b> função. Assim que o cronômetro estiver definido, setInterval pode ser usado para criar uma contagem regressiva que diminui o valor do temporizador a cada segundo. Quando o cronômetro chega a zero, a função pode interromper o jogo ou alertar o usuário que o tempo acabou. Esta funcionalidade, combinada com a capacidade de alterar dinamicamente o temporizador através de botões, melhora significativamente a experiência de jogo. Uma interface responsiva é fundamental para manter os jogadores envolvidos, e o feedback em tempo real é uma forma de conseguir isso.</p><p>Além disso, o tratamento de erros deve ser considerado. Por exemplo, se um usuário tentar iniciar o jogo sem definir um cronômetro, você poderá solicitar que ele selecione um horário válido. Ao incorporar mecanismos de validação, você garante que o jogo funcione sem problemas e reduz possíveis problemas. Este tipo de validação não só melhora a experiência do usuário, mas também contribui para a confiabilidade do seu jogo, garantindo que os jogadores não enfrentem confusões desnecessárias.</p><div id="newfaq"><div id="adsense-article-faq"></div><h4 id="faq">Perguntas comuns sobre personalização de timer em JavaScript</h4><div class="bordersh4"></div><ol> <li>Como eu uso <strong>setInterval</strong> criar uma contagem regressiva?</li> <li>Você pode usar <strong>setInterval</strong> configurando-o para ser executado a cada 1000 milissegundos (1 segundo) e diminuindo o valor do temporizador a cada vez. Quando o valor chegar a zero, você poderá interromper a contagem regressiva usando <strong>clearInterval</strong>.</li> <li>Qual é o propósito <strong>clearInterval</strong>?</li> <li><strong>clearInterval</strong> é usado para interromper uma contagem regressiva ou qualquer outra ação recorrente iniciada por <strong>setInterval</strong>. É crucial garantir que a contagem regressiva pare quando chegar a zero.</li> <li>Como posso atualizar o título HTML dinamicamente?</li> <li>Usar <strong>document.title</strong> para definir o texto do título da página. Isso pode ser atualizado dentro do seu <strong>changeTimer</strong> função com base no valor de tempo selecionado.</li> <li>Posso lidar com erros do usuário ao selecionar um cronômetro?</li> <li>Sim, você pode adicionar validação verificando se uma opção de cronômetro válida foi selecionada antes de iniciar a contagem regressiva. Se nenhum horário válido for escolhido, você poderá exibir um alerta ou prompt.</li> <li>Como aciono uma função quando um botão é clicado?</li> <li>Você pode anexar uma função a um botão usando <strong>addEventListener</strong> ou usando diretamente <strong>onClick</strong> no elemento HTML do botão.</li></ol></div><div id="summary"><h4>Considerações finais sobre personalização do temporizador</h4><div class="bordersh4"></div><p>A incorporação de ajustes dinâmicos do temporizador em um jogo de digitação melhora significativamente a experiência do jogador. Ao permitir que os usuários alterem o cronômetro usando botões HTML simples e atualizando a interface do jogo em tempo real, os desenvolvedores podem tornar seus jogos mais interativos e flexíveis. Esse tipo de controle ajuda a acomodar diferentes níveis de habilidade.</p><p>O uso de práticas recomendadas, como ouvintes de eventos, tratamento de erros e testes de unidade, garante que o jogo funcione sem problemas e forneça uma experiência confiável ao usuário. A implementação desses recursos não apenas melhorará a funcionalidade do jogo, mas também manterá os jogadores mais envolvidos com uma mecânica responsiva e fácil de usar.</p><div id="source"> <h6>Fontes e referências para personalização do temporizador</h6> <div class="bordersh2"></div> <ol> <li>Informações detalhadas sobre o uso de JavaScript para manipulação de DOM e manipulação de eventos podem ser encontradas em <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide" target="_blank">Documentos da Web do MDN</a> .</li> <li>Para entender o <a href="https://jestjs.io/docs/getting-started" target="_blank">Brincadeira</a> framework e sua implementação para testes unitários em aplicações JavaScript.</li> <li>Informações abrangentes sobre o uso <a href="https://www.w3schools.com/js/js_htmldom_eventlistener.asp" target="_blank">addEventListener</a> para tratamento de eventos em JavaScript estão disponíveis no W3Schools.</li> <li>A importância das atualizações em tempo real em aplicações web, incluindo temporizadores, é discutida em <a href="https://www.smashingmagazine.com/2020/02/real-time-app-web/" target="_blank">Revista sensacional</a> .</li> </ol></div></div> </article> </div> <!-- WIDGET RIGHT SIDE SCREEN --> <div id="article-right" class="col-lg-3 ol-md-12 col-sm-12 col-xs-12"> <aside aria-label="sidebar" id="article-sidebar" class="sidebar sidebar-right"> <div id="adsense-right" class="widget sidebaritem d-none d-md-none d-lg-block adsense-right-vertical-div" page="0"> <!-- <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328" crossorigin="anonymous"></script> <ins class="adsbygoogle adsense-right-vertical" style="" data-ad-client="ca-pub-3922865260272328" data-ad-slot="9756184449"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> --> </div> <div id="tempmail-slogan" class="widget w-about widget-sidebar sidebaritem" style="z-index:4;position:relative;background-color: white;margin-top:-30px;"> <div class="widget-title">Tempmail.us.com</div> <div class="bordersh4"></div> <p id="promotext">Procura o correio temporário anónimo com melhor desempenho na Internet? O nosso serviço de correio eletrónico temporário gratuito é o mais completo. Receba e envie mensagens de correio eletrónico, crie redireccionamentos para as suas mensagens de correio eletrónico favoritas. Guarde a sua palavra-passe e utilize o seu correio eletrónico temporário para sempre. POP3, IMAP e SMTP disponíveis gratuitamente.</p> <div style="width:100%;text-align:right;"> <a class="read-more--with-arrow" href="https://www.tempmail.us.com/pt/"> Temp mail </a> </div> </div> <div id="adsense-article-square"></div> <div id="blog-ajax" style="margin-top:5px;"></div> </aside> </div> </div> </div> </section> <!-- Footer --> <svg width="100%" height="4px" xmlns="http://www.w3.org/2000/svg" class="border-footer"> <defs> <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" style="stop-color:#EB177D;stop-opacity:1" /> <stop offset="25%" style="stop-color:#F9A933;stop-opacity:1" /> <stop offset="50%" style="stop-color:#3BC7EB;stop-opacity:1" /> <stop offset="75%" style="stop-color:#28C182;stop-opacity:1" /> </linearGradient> </defs> <rect width="100%" height="5px" fill="url(#grad1)" /> </svg> <!-- Balise div pour stocker le numéro de page initial --> <div id="content"> <!-- Contenu de votre page principale --> <div id="page_count"></div> </div> </div> <div class="footer-ad"> <div id="google_ads_iframe" style="max-width:1200px;text-align:center;margin: 0 auto; z-index:5;background-size: cover;background-repeat: no-repeat;background-image: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAACWAAAAI9CAIAAAAxONTqAAAACXBIWXMAABYlAAAWJQFJUiTwAAAF0WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDI0LTA4LTAzVDA4OjI1OjIzLTA0OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDI0LTA4LTAzVDA4OjI1OjIzLTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNC0wOC0wM1QwODoyNToyMy0wNDowMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozODA2ZTM4Zi1mMTU2LThkNGItODA0Ny0wNmJmODgzZmYwMjgiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo0NzNiMjA4Zi1hNzI4LTMzNDQtODk0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);"> </div> </div> <!-- ... end Footer --> <div id="javascript-mobile"></div> <script> // Fonction pour charger le script Hotjar function loadHotjar() { (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:5178820,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='); } // Écouteur d'événements pour la souris et le toucher if (typeof interactionDetected === 'undefined') { let interactionDetected = false; // Déclaration de la variable // Détecter les mouvements de souris sur desktop window.addEventListener('mousemove', function() { if (!interactionDetected) { interactionDetected = true; loadHotjar(); // Charge le script Hotjar } }); // Détecter les interactions tactiles sur mobile window.addEventListener('touchstart', function() { if (!interactionDetected) { interactionDetected = true; loadHotjar(); // Charge le script Hotjar } }); } </script> <script> // Function to load a script and return a Promise that resolves when the script is loaded function loadScript(src) { return new Promise((resolve, reject) => { const script = document.createElement('script'); script.src = src; script.onload = () => resolve(); script.onerror = () => reject(new Error(`Failed to load script: ${src}`)); document.getElementById('javascript-mobile').appendChild(script); }); } // Async function to sequentially load scripts with a delay after jQuery async function loadScriptsSequentially() { try { // Load jQuery first await loadScript('https://www.tempmail.us.com/js/jquery.min.js'); // Optional: Verify that jQuery is loaded if (typeof jQuery === 'undefined') { throw new Error('jQuery did not load correctly.'); } // Delay of 500ms after jQuery is loaded //await new Promise(resolve => setTimeout(resolve, 100)); // Load the remaining scripts sequentially await loadScript('https://www.tempmail.us.com/js/lazysizes.min.js'); //await new Promise(resolve => setTimeout(resolve, 100)); //await loadScript('https://www.tempmail.us.com/js/load-bg-and-webp.js'); await loadScript('https://www.tempmail.us.com/js/prism.js'); // All scripts loaded successfully console.log('All scripts loaded successfully.'); // You can now execute any code that depends on the loaded scripts // For example: $(document).ready(function() { console.log('jQuery is ready.'); // Your jQuery-dependent code here }); } catch (error) { console.error(error); } } pageCount = document.querySelectorAll('#content #page_count').length; //console.log('Nombre de pages chargées:', pageCount); // Initiate the script loading based on the window width if (window.innerWidth < 900) { loadScriptsSequentially(); } </script> <script> setTimeout(function() { $(document).ready(function() { //permettre le copier-coller // Sélectionnez tous les éléments <pre> dans le document document.addEventListener('mousemove', function() { const pageCount = document.querySelectorAll('#content #page_count').length; //console.log('Nombre de pages chargées:', pageCount); pageNum = pageCount-1; var preElements = document.querySelectorAll('div[page="'+ pageNum +'"] pre'); // Parcourez chaque élément <pre> preElements.forEach(function(preElement, index) { var preId = "pre" + (index + 1); // ID unique, par exemple : pre1, pre2, pre3, ... // Créez un élément <img> avec un attribut onclick qui appelle copyCode avec l'ID correspondant var img = document.createElement("img"); img.src = "https://www.tempmail.us.com/img/copypaste4.png"; // Remplacez par le chemin de votre image img.alt = "Copiar e colar"; img.setAttribute("width", "28.698"); img.setAttribute("height", "35"); img.classList.add("lazyload"); img.setAttribute("onclick", "copyCode('" + preId + "', this)"); // Créez un élément div pour contenir l'image var imgContainer = document.createElement("div"); imgContainer.appendChild(img); imgContainer.classList.add("article-copypaste"); // Ajoutez la classe "article-copypaste" à la div // Insérez le imgContainer avant l'élément <pre> preElement.parentNode.insertBefore(imgContainer, preElement); // Attribuez l'ID à l'élément <pre> preElement.id = preId; }); var count = 1; $('.article-copypaste').each(function() { // Vérifie si la div langprog existe juste au-dessus de chaque div article-copypaste if ($(this).prev('.langprog').length === 0) { // Si elle n'existe pas, créez-la $(this).before('<p class="langprog"><br></p>'); } }); $('div[page="0"] .langprog').each(function() { //console.log("test"); // Créez une nouvelle div var newDiv = $('<div>').text(''); // Ajoutez des classes ou des styles à la nouvelle div si nécessaire newDiv.attr('id', "pre"+count+"-alert"); //newDiv.attr('display', "none"); // Ajoutez la nouvelle div en haut de la div actuelle $(this).prepend(newDiv); count++; }); document.removeEventListener('mousemove', arguments.callee); }); }); }, 1000); //copier les pre & code function copyCode(preId, button) { var pre = document.getElementById(preId); var range = document.createRange(); range.selectNode(pre); // Supprimer les espaces en début de chaque ligne var cleanedText = pre.textContent.replace(/^\s+/gm, ""); // Créer un élément temporaire pour copier le texte nettoyé var temp = document.createElement("textarea"); temp.value = cleanedText; document.body.appendChild(temp); temp.select(); document.execCommand("copy"); document.body.removeChild(temp); button.innerHTML = "Copié !"; setTimeout(function() { button.innerHTML = "Copier"; }, 1000); var boxe = "#"+preId+"-alert"; console.log(boxe); showCopyPaste(boxe,"Conteúdo copiado para a área de transferência!","success"); } function showCopyPaste(id,textbox,info) { var message = $('div[page="0"] ' + id); message.text(textbox); message.removeClass(); if (info=="general") { message.addClass('alert alert-secondary'); } if (info=="warning") { message.addClass('alert alert-warning'); } if (info=="danger") { message.addClass('alert alert-danger'); } if (info=="success") { message.addClass('alert alert-success'); } message.fadeIn(); setTimeout(function() { message.fadeOut(); }, 3000); // 2000 millisecondes = 2 secondes } </script> <script> setTimeout(function() { $(document).ready(function () { pageCount = document.querySelectorAll('#content #page_count').length; //console.log('Nombre de pages chargées:', pageCount); pageNum = pageCount-1; if ( pageNum==0) { //console.log("repasser par la "); initPositioning(0); // Initial call for the first page } setTimeout(function() { //parce que le prism est en defer Prism.highlightAll(); }, 500); }); $(document).ready(function () { var ajaxAborted = false; var page = 1; // Numéro de la page actuelle var loading = false; // Pour éviter les chargements multiples en même temps var articlesLoaded = false; function loadMoreArticles(unusedHeight) { if (loading || articlesLoaded) return; // Déclenche la requête AJAX pour charger plus d'articles $.ajax({ url: 'https://www.tempmail.us.com/02blog-ajax.php', // L'URL du script PHP pour charger les articles method: 'POST', data: { action: 'getArticles', lang: 'pt', addQueryCat: "AND catclean='javascript'", page: page, currentid: "100095", unusedHeight: unusedHeight // Utilisez la valeur de hauteur non utilisée ici }, dataType: 'html', beforeSend: function (xhr) { loading = true; if (ajaxAborted) { xhr.abort(); // Annuler la requête } }, success: function (response) { // Insérez les nouveaux articles dans la partie vide de la page if ($(response).find('div').length > 0) { const pageCount = document.querySelectorAll('#content #page_count').length; //console.log('Nombre de pages chargées:', pageCount); pageNum = pageCount-1; // La division en particulier est trouvée, continuez le traitement var parentDiv = $('div[page="' + pageNum + '"]'); var blogAjaxElement = parentDiv.find('#blog-ajax'); blogAjaxElement.append(response); } else { ajaxAborted = true; //console.log("aborded"); } // Incrémente le numéro de page page++; loading = false; articlesLoaded = true; }, error: function (xhr, status, error) { // Gérez les erreurs si nécessaire console.error(error); } }); } // Fonction pour calculer la hauteur non utilisée de manière synchrone function calculateUnusedHeight() { const pageCount = document.querySelectorAll('#content #page_count').length; //console.log('Nombre de pages chargées:', pageCount); pageNum = pageCount-1; var parentDiv = $('div[page="' + pageNum + '"]'); var sidebar = parentDiv.find('#article-right')[0]; var sidebarItems = parentDiv.find('.sidebaritem'); var $page = $('[page="' + pageNum + '"]'); var $article = $page.find('#article'); var $newfaq = $page.find('#newfaq'); var totalfaq = $newfaq.outerHeight(); $page.find('[id^=script]').each(function(index) { totalfaq += $(this).outerHeight(); }); //console.log("total height"+totalfaq ) // Comparer avec la hauteur de #article et ajuster si nécessaire var $article = $page.find('#article'); var realarticleheight = $article.outerHeight() - (totalfaq); var totalHeight = realarticleheight; if (totalfaq>realarticleheight) { totalHeight = totalfaq; } //console.log("test"+totalHeight); var itemsHeight = 0; for (var i = 0; i < sidebarItems.length; i++) { itemsHeight += sidebarItems[i].offsetHeight; } var $article = $page.find('#article'); var unusedHeight = $article.outerHeight() - 1600; //var unusedHeight = (totalHeight+400) - (itemsHeight); return unusedHeight; } // Chargez les premiers articles au chargement de la page if ($(window).width() > 991) { setTimeout(function() { var unusedHeight = calculateUnusedHeight(); //console.log("unUsed"+unusedHeight); loadMoreArticles(unusedHeight); }, 1500); } }); }, 1000); </script> <script> setTimeout(function() { $(document).ready(function() { // Fonction pour vérifier le statut de la publicité AdSense après un délai de 2 secondes setTimeout(function() { $(".adsbygoogle").each(function() { var self = $(this); var adStatus = self.attr("data-ad-status"); //console.log("test"+adStatus); if (adStatus === "unfilled") { removeParentDiv(self); // Appel de la fonction pour manipuler la div parent } }); }, 2000); // Attendre 2 secondes // Fonction pour manipuler la div parent function removeParentDiv(element) { var parentDiv = element.closest('#adsense-right'); if (parentDiv.length > 0) { parentDiv.remove(); // Supprimer la div parent si elle est trouvée } } }); }, 1000); // Écoute de l'événement de mouvement de la souris pour charger le script Google AdSense lorsque l'utilisateur effectue une action document.addEventListener('mousemove', function() { // Chargement du script Google AdSense //chargerScriptGoogleAdsenseVertical(); var script = document.createElement('script'); script.src = 'https://www.googletagmanager.com/gtag/js?id=G-ESDTKX54VK'; script.async = true; // Ajoutez le script à l'en-tête du document document.head.appendChild(script); // Initialisez Google Tag Manager lorsque le script est chargé script.onload = function() { window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-ESDTKX54VK'); }; chargerScriptGoogleAdsenseSquare(); // Suppression de l'écouteur d'événements après le premier déclenchement pour éviter de charger le script à nouveau document.removeEventListener('mousemove', arguments.callee); }); // Fonction pour charger le script Google AdSense function chargerScriptGoogleAdsenseSquare() { // Créez un élément script var script = document.createElement('script'); script.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; script.async = true; script.crossOrigin = "anonymous"; // Ajoutez une fonction pour exécuter lorsque le script est chargé script.onload = function() { // Créez un élément ins (bloc de publicité AdSense) var ins = document.createElement('ins'); ins.className = "adsbygoogle adsense-right-square"; ins.style = ""; ins.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); ins.setAttribute('data-ad-slot', '2613927101'); // ins.setAttribute('data-ad-format', 'auto'); // ins.setAttribute('data-full-width-responsive', 'true'); // Ajoutez le bloc de publicité à l'emplacement désiré var parentElement = document.querySelector('div[page="0"] .widget.adsenselink.d-none.d-md-none.d-lg-block'); parentElement.appendChild(ins); // Appelez la fonction push() pour afficher la publicité (adsbygoogle = window.adsbygoogle || []).push({}); // Surveillez les changements de l'attribut data-ad-status de l'élément ins var observer = new MutationObserver(function(mutationsList, observer) { mutationsList.forEach(function(mutation) { if (mutation.attributeName === "data-ad-status") { // Récupérez la valeur de l'attribut data-ad-status var status = ins.getAttribute("data-ad-status"); //console.log("Attribut data-ad-status a changé :", status); // Faites ce que vous devez avec la valeur récupérée if (status != "filled") { $('#adsense-right').remove(); // Appel de la fonction pour manipuler la div parent } } }); }); // Configurez l'observateur pour surveiller les changements d'attribut de l'élément ins observer.observe(ins, { attributes: true }); }; // Ajoutez le script à l'emplacement désiré var parentElement = document.querySelector('div[page="0"] .widget.adsenselink.d-none.d-md-none.d-lg-block'); parentElement.appendChild(script); } function chargerScriptGoogleAdsenseVertical() { // Création de l'élément script var script = document.createElement('script'); script.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; script.async = true; script.crossOrigin = "anonymous"; // Ajout d'une fonction à exécuter lorsque le script est chargé script.onload = function() { // Création de l'élément ins (bloc de publicité AdSense) var ins = document.createElement('ins'); ins.className = "adsbygoogle adsense-right-vertical"; ins.style = ""; ins.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); ins.setAttribute('data-ad-slot', '9756184449'); // Ajout du bloc de publicité à l'emplacement désiré var parentElement = document.querySelector('div[page="0"] .widget.sidebaritem.d-none.d-md-none.d-lg-block.adsense-right-vertical-div'); parentElement.appendChild(ins); // Appel de la fonction push() pour afficher la publicité (adsbygoogle = window.adsbygoogle || []).push({}); var observer = new MutationObserver(function(mutationsList, observer) { mutationsList.forEach(function(mutation) { if (mutation.attributeName === "data-ad-status") { // Récupérez la valeur de l'attribut data-ad-status var status = ins.getAttribute("data-ad-status"); console.log("Attribut data-ad-status a changé :", status); // Faites ce que vous devez avec la valeur récupérée if (status != "filled") { document.querySelector('div[page="0"] .widget.sidebaritem.d-none.d-md-none.d-lg-block.adsense-right-vertical-div').remove(); // Appel de la fonction pour manipuler la div parent } } }); }); // Configurez l'observateur pour surveiller les changements d'attribut de l'élément ins observer.observe(ins, { attributes: true }); }; // Ajout du script à l'emplacement désiré var parentElement = document.querySelector('div[page="0"] .widget.sidebaritem.d-none.d-md-none.d-lg-block.adsense-right-vertical-div'); parentElement.appendChild(script); } </script> <script> function handleScroll() { var scrollPosition = window.scrollY; // Position de défilement par rapport au haut de la page var targetDiv = document.getElementById('navigation'); // Remplacez 'votre-div' par l'ID de votre div cible // Si la position de défilement est supérieure à 0, ajoutez la classe if (scrollPosition > 0) { targetDiv.classList.add('header--fixed'); // Remplacez 'votre-classe' par le nom de la classe que vous souhaitez ajouter } else { // Sinon, supprimez la classe targetDiv.classList.remove('header--fixed'); } } // Écoutez l'événement de défilement window.addEventListener('scroll', handleScroll); </script> <script> setTimeout(function() { $(document).ready(function () { // Définir une variable globale pour vérifier si la nouvelle page a été chargée let nouvellePageChargee = false; // Fonction pour charger la page suivante function chargerPageSuivante(url) { // Charger le contenu de la page suivante via AJAX ou fetch fetch(url) .then(response => response.text()) .then(data => { // Créer un nouvel élément div pour contenir le contenu HTML const tempDiv = document.createElement('div'); tempDiv.innerHTML = data; var navigationLogoElements = tempDiv.querySelectorAll('.navigation-logo'); // Parcourir tous les éléments trouvés et ajouter un style pour les cacher navigationLogoElements.forEach(function(element) { element.style.display = 'none'; }); var h1ArticleElement = tempDiv.querySelector('#h1article'); // Appliquer le style à l'élément sélectionné if (h1ArticleElement) { h1ArticleElement.style.marginBottom = '46px'; h1ArticleElement.style.marginTop = '0px'; h1ArticleElement.style.marginLeft = '10px'; } var articleheader = tempDiv.querySelector('#article-header'); if (articleheader) { articleheader.style.paddingBottom = '20px'; articleheader.style.paddingTop = '20px'; } var h1header = tempDiv.querySelector('#h1article'); if (h1header) { h1header.style.maxWidth = '70%'; } var screenWidth = window.innerWidth; var imgElement = tempDiv.querySelector('.article-main-img'); if (screenWidth > 900 && imgElement) { imgElement.src = 'https://www.tempmail.us.com/images/80/80738e14f3a3bf39f19b55b8d7992fe0.png/desafios-na-execucao-de-procedimentos-armazenados-baseados-em-javascript-no-snowflake-por-meio-de-airflow-dags.png'; } var desktoplogo = tempDiv.querySelector('.newlogo-desktop'); if (desktoplogo) { var imgElement = document.createElement("img"); imgElement.className = "lazyload"; imgElement.alt = "Temp mail SuperHeros"; if (window.innerWidth > 900) { imgElement.src = "https://www.tempmail.us.com/images/site/tempmail-superheros.webp"; imgElement.width = 343; imgElement.height = 350; desktoplogo.appendChild(imgElement); } } var adsensearticle = tempDiv.querySelector('#adsense-article'); if (adsensearticle) { var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4326653974'); insElement.setAttribute('style', 'display:inline-block;max-width:100%;width:100%;min-height:140px;max-height:140px;padding-top:10px;padding-bottom:0px;'); // Insertion des éléments dans la div #index-adsense var adsContainer = tempDiv.querySelector('#adsense-article'); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "5px"; //adsContainer.style.marginTop = "5px"; // adsContainer.style.height = "110px"; // adsContainer.style.paddingBottom = "0px"; //adsContainer.style.marginBottom = "5px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); } var adsensearticlefaq = tempDiv.querySelector('#adsense-article-faq'); if (adsensearticlefaq) { var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4326653974'); insElement.setAttribute('style', 'display:inline-block;max-width:100%;width:100%;min-height:140px;max-height:140px;padding-top:10px;padding-bottom:0px;'); // Insertion des éléments dans la div #index-adsense var adsContainer = tempDiv.querySelector('#adsense-article-faq'); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "5px"; //adsContainer.style.marginTop = "5px"; // adsContainer.style.height = "110px"; // adsContainer.style.paddingBottom = "0px"; //adsContainer.style.marginBottom = "5px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); } var adsensearticlefaq = tempDiv.querySelector('#adsense-article-square'); if (adsensearticlefaq) { var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4326653974'); insElement.setAttribute('style', 'display:inline-block;width:100%;height:auto;max-width:100%;min-height:350px;max-height:350px;margin-top:10px;margin-bottom:8px;'); // Insertion des éléments dans la div #index-adsense var adsContainer = tempDiv.querySelector('#adsense-article-square'); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "5px"; //adsContainer.style.marginTop = "5px"; // adsContainer.style.height = "110px"; // adsContainer.style.paddingBottom = "0px"; //adsContainer.style.marginBottom = "5px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); } const pageCount = document.querySelectorAll('#content #page_count').length; //console.log('Nombre de pages chargées:', pageCount); // Récupérer tous les éléments avec l'attribut page=1 dans tempDiv const elementsWithPageAttribute = tempDiv.querySelectorAll('[page="0"]'); // Mettre à jour les attributs de ces éléments avec la valeur de pageCount elementsWithPageAttribute.forEach(element => { element.setAttribute('page', pageCount); }); // Extraire et exécuter les scripts de la nouvelle page const scripts = tempDiv.querySelectorAll('script'); scripts.forEach(script => { if (script.type !== 'application/ld+json') { const newScript = document.createElement('script'); // Modifier le contenu du script pour mettre à jour les sélecteurs let scriptContent = script.textContent; // Vérifier si le script contient 'page="0"' et le remplacer par la nouvelle valeur de pageCount // Si le script a un attribut src, le copier if (script.src) { newScript.src = script.src; } else { // Sinon, copier le contenu du script let scriptContent = script.textContent; // Remplacer toutes les occurrences de 'div[page="0"]' par 'div[page="' + pageCount + '"]' scriptContent = scriptContent.replace(/div\[page="0"\]/g, 'div[page="' + pageCount + '"]'); // Assigner le nouveau contenu au script newScript.textContent = scriptContent; } console.log(newScript) document.body.appendChild(newScript); } }); // Ajouter le contenu de la nouvelle page à la page actuelle document.getElementById('content').appendChild(tempDiv); if (pageCount!=0) { initPositioning(pageCount); (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); } // Compter le nombre de div avec l'ID "page_count" }) .catch(error => { console.error('Erreur lors du chargement de la page suivante:', error); }); } // Événement de défilement de la fenêtre window.addEventListener('scroll', function() { // Vérifier si l'utilisateur a atteint le bas de la page var distanceRestante = document.body.offsetHeight - (window.innerHeight + window.scrollY); // Vérifier si l'utilisateur est près du bas de la page if (!nouvellePageChargee && ($(window).scrollTop() + $(window).height()) >= $(document).height() - 100) { // Mettre à jour l'URL dans la barre d'adresse du navigateur avec l'URL de la page suivante window.history.pushState({}, '', 'https://www.tempmail.us.com/pt/snowflake/desafios-na-execucao-de-procedimentos-armazenados-baseados-em-javascript-no-snowflake-por-meio-de-airflow-dags'); // Charger la page suivante chargerPageSuivante('https://www.tempmail.us.com/pt/snowflake/desafios-na-execucao-de-procedimentos-armazenados-baseados-em-javascript-no-snowflake-por-meio-de-airflow-dags'); // Désactiver le gestionnaire d'événements de défilement window.removeEventListener('scroll', arguments.callee); } }); }); }, 1000); </script> <script> setTimeout(function() { $(document).ready(function() { //mobile image top load after pour le page speed var imageLoaded = false; // Pour vérifier si l'image a déjà été chargée $(document).on('touchstart', '*', function(event) { if (!imageLoaded) { var $image = $('#lazyImage'); var imageSrc = $image.data('src'); // Récupère l'URL de l'image depuis data-src // Modifie le src de l'image pour charger l'image $image.attr('src', imageSrc); $image.css('min-width', '109%').css('!important', true); $image.css('height', '250px').css('!important', true); // Marque l'image comme chargée imageLoaded = true; // Optionnel : Désactiver l'écoute de l'événement après chargement pour éviter les appels répétés $(document).off('touchstart'); } }); }); }, 1000); function initPositioning(pageCount) { if ($(window).width() > 1700) { var $page = $('[page="' + pageCount + '"]'); console.log("page count"+pageCount); var $newfaq = $page.find('#newfaq'); if ($newfaq.length) { var topOffset = 75 + $newfaq.outerHeight() - 30; var leftOffset = $newfaq.position().left + 30; //fixed mac issues if ($(window).width()==2072) { leftOffset = $newfaq.position().left + 180; } if ($(window).width()==1792) { leftOffset = $newfaq.position().left + 90; } if ($(window).width()==1728) { leftOffset = $newfaq.position().left + 130; } if ($(window).width()==2030) { leftOffset = $newfaq.position().left + 190; } // Calculer la hauteur totale de #newfaq et des scripts var totalHeight = $newfaq.outerHeight(); console.log("CALCUL LA HAUTEUR DU FAQ TOTALHEIGHT"+totalHeight) var $article = $page.find('#article'); var realarticleheight = $article.outerHeight() - totalHeight; //console.log("REGARDER LA HAUTEUR DE L'ARTICLE SANS FAQ"+realarticleheight) //si ya plus de contenue à droite on update sont height if (totalHeight > realarticleheight) { // $article.css('height', totalHeight + 'px'); } var $summary = $page.find('#summary'); if ($summary.length) { var summaryHeight = $summary.outerHeight(); //console.log("SUMMARY HAUTEUR SI DISPONIBLE "+summaryHeight) } // Réinitialiser topOffset après ajustement de #article topOffset = $newfaq.position().top + $newfaq.outerHeight() - 50; // Positionner les divs script pour chaque page $page.find('[id^=script]').each(function(index) { $(this).css({ 'position': 'absolute', 'top': topOffset + 'px', 'left': leftOffset + 'px' }); topOffset += $(this).outerHeight(); }); var totalHeight = $newfaq.outerHeight(); $page.find('[id^=script]').each(function(index) { if ($(this).css('position') === 'absolute') { totalHeight += $(this).outerHeight(); } }); //console.log("CALCUL LA HAUTEUR DU FAQ + SCRIPT absolute TOTALHEIGHT"+totalHeight) setTimeout(function() { if ($("#source").length) { var source = $page.find('#source'); var sourceHeight = source.outerHeight(); } var realarticleheight = $article.outerHeight(); var totalleft = realarticleheight; var totalright = totalHeight-700; console.log("total left "+totalleft) console.log("total right"+totalright) console.log("summary height"+summaryHeight) console.log("source height"+sourceHeight) if ($("#source").length) { if ((totalleft-totalright)>(summaryHeight+sourceHeight)) { $summary.css({ 'position': 'absolute', 'top': (topOffset-50) + 'px', 'left': leftOffset + 'px', 'max-width': '950px' }); source.css({ 'max-width': '950px' }); if ($(window).width()<2000) { $summary.css({ 'max-width': '750px' }); source.css({ 'max-width': '750px' }); } var newrightheight = topOffset+summaryHeight+550; console.log("new right height"+newrightheight) console.log("totalleft"+totalleft) if (newrightheight>totalleft) { console.log("test") // $article.css('height', newrightheight-500 + 'px'); } } } else { if ((totalleft-totalright)>(summaryHeight)) { $summary.css({ 'position': 'absolute', 'top': (topOffset-50) + 'px', 'left': leftOffset + 'px', 'max-width': '950px' }); if ($(window).width()<2000) { $summary.css({ 'max-width': '750px' }); } var newrightheight = topOffset+summaryHeight+550; console.log("new right height"+newrightheight) console.log("totalleft"+totalleft) if (newrightheight>totalleft) { console.log("test") // $article.css('height', newrightheight-500 + 'px'); } } } }, 1000); //si le summary est disponible et que le totalheight+smuaarry sont plus petit on le déplace a droite //SI LE SUMMARY À DROITE PEUT ETRE MISE À GAUCHE POUR BALANCER LA PAGE /* if ((totalHeight+summaryHeight) < ((realarticleheight-summaryHeight))) { } var $source = $page.find('#source'); if ($(window).width()>2000) { $source.css({ 'position': 'absolute', 'top': (topOffset-50) + 'px', 'left': leftOffset + 'px', 'max-width': '950px' }); } else { $source.css({ 'position': 'absolute', 'top': (topOffset-50) + 'px', 'left': leftOffset + 'px', 'max-width': '750px' }); } */ //------------------------------------------------------------------------ //ON RECALCUL LE CÖTÉ DROITE APRÈS LES MODIFICATION ET ON CONFIRME LE GAUCHE var totalHeight = $newfaq.outerHeight(); $page.find('[id^=script]').each(function(index) { if ($(this).css('position') === 'absolute') { totalHeight += $(this).outerHeight(); } }); if ($summary.length) { totalHeight = totalHeight+$('#summary').outerHeight(); } var elements = []; $page.find('[id^=script]').each(function() { elements.push($(this)); }); // Sort the array by ID in descending order elements.sort(function(a, b) { var aNum = parseInt(a.attr('id').replace('script', '')); var bNum = parseInt(b.attr('id').replace('script', '')); return bNum - aNum; }); //console.log("TOTAL HEIGHT VALUE 1 -> "+totalHeight) var $article = $page.find('#article'); realarticleheight = $article.outerHeight(); //console.log("realarticleheight VALUE 1 -> "+realarticleheight ) //-------------------------------------------------------------------- //-------------------------------------------------------------------- SI LE CÖTÉ DROITE EST PLUS LONG QUE LE CÖTÉ GAUCHE if (totalHeight > realarticleheight) { //console.log("TOTAL HEIGHT + GRAND QUE realarticleheight") var difference = totalHeight - realarticleheight; var lastStaticElement = null; if (difference > 500) { elements.forEach(function(item) { if ((difference - item.outerHeight()) > 0) { // Mark the last element that should be static lastStaticElement = item; item.css({ 'position': 'static', 'top': '', 'left': '' }); } // Update the difference for the next iteration difference -= item.outerHeight(); }); // Apply 'static' only to the last element if it exists if (lastStaticElement) { lastStaticElement.css({ 'position': 'static', 'top': '', 'left': '' }); } } var totalHeight = $newfaq.outerHeight(); $page.find('[id^=script]').each(function(index) { if ($(this).css('position') === 'absolute') { totalHeight += $(this).outerHeight(); } }); var $article = $page.find('#article'); realarticleheight = $article.outerHeight(); var difference = totalHeight - realarticleheight; setTimeout(function() { console.log("difference "+difference); /*if (difference > 500) { $summary.css({ 'position': 'absolute', 'top': topOffset + 'px', 'left': leftOffset + 'px' }); } */ // if (difference > 500) { $summary.css({ 'position': 'static', 'top': '', 'left': '' }); //} console.log("passer par la") var $article = $page.find('#article'); // $article.css('height', '11px'); if ($summary.length) { var summaryHeight = $summary.outerHeight(); if ($summary.css('position') === 'absolute') { totalHeight = totalHeight; // $article.css('height', totalHeight + 'px'); } } //console.log("TOTAL HEIGHT APRÈS DÉPLACEMENT VERS LA DROITE "+totalHeight) var $article = $page.find('#article'); //console.log("ARTICLE HEIGHT APRÈS DÉPLACEMENT VER LA DROITE "+$article.outerHeight()) if (totalHeight>$article.outerHeight()) { // $article.css('height', totalHeight+800 + 'px'); } }, 2000); } //-------------------------------------------------------------------- } } } </script> <script> document.addEventListener("DOMContentLoaded", function() { var imgElement = document.createElement("img"); imgElement.className = "lazyload"; imgElement.alt = "Temp mail SuperHeros"; if (window.innerWidth > 900) { imgElement.src = "https://www.tempmail.us.com/images/site/tempmail-superheros.webp"; imgElement.width = 343; imgElement.height = 350; document.querySelector(".newlogo-desktop").appendChild(imgElement); var img = document.getElementById("article-logo"); if (img) { img.src = "https://www.tempmail.us.com/images/site/logo-95px.webp"; img.width = 95; img.height = 90; } } else { imgElement.src = "https://www.tempmail.us.com/images/site/tempmail-superheros-mobile.webp"; imgElement.width = 147; imgElement.height = 150; document.querySelector(".newlogo").appendChild(imgElement); } }); document.addEventListener("DOMContentLoaded", function() { var imageBackgroundDiv = document.getElementById('image-background'); if (!imageBackgroundDiv) return; // Exit if the div doesn't exist var bg320 = imageBackgroundDiv.getAttribute('data-bg-320'); var bg540 = imageBackgroundDiv.getAttribute('data-bg-540'); var bg768 = imageBackgroundDiv.getAttribute('data-bg-768'); var bg1366 = imageBackgroundDiv.getAttribute('data-bg-1366'); var bg1536 = imageBackgroundDiv.getAttribute('data-bg-1536'); var bg1920 = imageBackgroundDiv.getAttribute('data-bg-1920'); var bg2732 = imageBackgroundDiv.getAttribute('data-bg-2732'); var screenWidth = window.innerWidth; if (screenWidth <= 320) { imageBackgroundDiv.style.backgroundImage = `url(${bg320})`; } else if (screenWidth <= 540) { imageBackgroundDiv.style.backgroundImage = `url(${bg540})`; } else if (screenWidth <= 768) { imageBackgroundDiv.style.backgroundImage = `url(${bg768})`; } else if (screenWidth <= 1366) { imageBackgroundDiv.style.backgroundImage = `url(${bg1366})`; } else if (screenWidth <= 1536) { imageBackgroundDiv.style.backgroundImage = `url(${bg1536})`; } else if (screenWidth <= 1920) { imageBackgroundDiv.style.backgroundImage = `url(${bg1920})`; } else { imageBackgroundDiv.style.backgroundImage = `url(${bg2732})`; } }); </script> <script> document.addEventListener("DOMContentLoaded", function() { var screenWidth = window.innerWidth; var imgElement = document.querySelector('.article-main-img'); if (screenWidth > 900 && imgElement) { imgElement.src = 'https://www.tempmail.us.com/images/9a/9a679053963ebb61b232c79134b8a627-766px.webp/como-modificar-o-valor-do-temporizador-javascript-para-um-jogo-de-digitacao-usando-botoes-html-766px.webp'; } }); </script> <script> function closeAd() { document.querySelector('.footer-ad').style.display = 'none'; // Masque l'ad } // Vérification de l'état de l'annonce setInterval(function() { const adElement = document.querySelector('.footer-ad .adsbygoogle'); // Sélecteur mis à jour if (adElement && adElement.getAttribute('data-ad-status') === 'unfilled') { closeAd(); // Ferme l'annonce si elle est non remplie } }, 500); // Vérifie chaque seconde (1000 ms) </script> <script> document.addEventListener("DOMContentLoaded", function() { document.addEventListener('mousemove', function() { var windowWidth = window.innerWidth; if (windowWidth > 900) { var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4326653974'); insElement.setAttribute('style', 'display:inline-block;max-width:100%;width:100%;min-height:140px;max-height:140px;padding-top:10px;padding-bottom:0px;'); // Insertion des éléments dans la div #index-adsense var adsContainer = document.getElementById("adsense-article"); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "5px"; //adsContainer.style.marginTop = "5px"; // adsContainer.style.height = "110px"; // adsContainer.style.paddingBottom = "0px"; //adsContainer.style.marginBottom = "5px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); (adsbygoogle = window.adsbygoogle || []).push({}); // Création des éléments script et ins var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4395216949'); insElement.setAttribute('style', 'display:block;width:100%;height:auto;max-width:100%;min-height:140px;max-height:140px;margin-top:10px;margin-bottom:8px;'); var adsContainer = document.getElementById("adsense-article-faq"); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "10px"; // adsContainer.style.paddingBottom = "0px"; // adsContainer.style.marginBottom = "10px"; // adsContainer.style.height = "110px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; if (adsContainer) { adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); // Rechargez les annonces pour qu'elles soient affichées correctement (adsbygoogle = window.adsbygoogle || []).push({}); } // Création des éléments script et ins var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4395216949'); insElement.setAttribute('style', 'display:inline-block;width:100%;height:auto;max-width:100%;min-height:350px;max-height:350px;margin-top:10px;margin-bottom:8px;'); var adsContainer = document.getElementById("adsense-article-square"); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "10px"; // adsContainer.style.paddingBottom = "0px"; // adsContainer.style.marginBottom = "10px"; // adsContainer.style.height = "110px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; if (adsContainer) { adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); // Rechargez les annonces pour qu'elles soient affichées correctement (adsbygoogle = window.adsbygoogle || []).push({}); } // Création des éléments script et ins var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '9665260777'); insElement.setAttribute('data-ad-format', 'auto'); insElement.setAttribute('data-full-width-responsive', 'true'); var adsContainer = document.getElementById("google_ads_iframe"); adsContainer.style.border = "2px solid #dfe6ec"; adsContainer.style.padding = "10px"; adsContainer.style.marginBottom = "10px"; adsContainer.style.backgroundColor = "#f7f8fa"; adsContainer.style.borderRadius = "5px"; adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); // Rechargez les annonces pour qu'elles soient affichées correctement (adsbygoogle = window.adsbygoogle || []).push({}); } document.removeEventListener('mousemove', arguments.callee); }); }); setTimeout(function() { var pubLoaded = false; // Pour vérifier si l'image a déjà été chargée $(document).on('touchstart', '*', function(event) { if (!pubLoaded) { // Marque la pub comme chargée pubLoaded = true; // Optionnel : Désactiver l'écoute de l'événement après chargement pour éviter les appels répétés $(document).off('touchstart'); var windowWidth = window.innerWidth; if (windowWidth < 900) { var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4326653974'); insElement.setAttribute('style', 'display:inline-block;max-width:100%;width:100%;min-height:140px;max-height:140px;padding-top:10px;padding-bottom:0px;'); // Insertion des éléments dans la div #index-adsense var adsContainer = document.getElementById("adsense-article"); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "5px"; //adsContainer.style.marginTop = "5px"; // adsContainer.style.height = "110px"; // adsContainer.style.paddingBottom = "0px"; //adsContainer.style.marginBottom = "5px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); (adsbygoogle = window.adsbygoogle || []).push({}); // Création des éléments script et ins var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4395216949'); insElement.setAttribute('style', 'display:block;width:100%;height:auto;max-width:100%;min-height:140px;max-height:140px;margin-top:10px;margin-bottom:8px;'); var adsContainer = document.getElementById("adsense-article-faq"); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "10px"; // adsContainer.style.paddingBottom = "0px"; // adsContainer.style.marginBottom = "10px"; // adsContainer.style.height = "110px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; if (adsContainer) { adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); // Rechargez les annonces pour qu'elles soient affichées correctement (adsbygoogle = window.adsbygoogle || []).push({}); } // Création des éléments script et ins var scriptElement = document.createElement('script'); scriptElement.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3922865260272328"; scriptElement.async = true; scriptElement.crossorigin = "anonymous"; var insElement = document.createElement('ins'); insElement.className = "adsbygoogle"; insElement.style.display = "block"; insElement.setAttribute('data-ad-client', 'ca-pub-3922865260272328'); insElement.setAttribute('data-ad-slot', '4395216949'); insElement.setAttribute('style', 'display:inline-block;width:100%;height:auto;max-width:100%;min-height:350px;max-height:350px;margin-top:10px;margin-bottom:8px;'); var adsContainer = document.getElementById("adsense-article-square"); // adsContainer.style.border = "2px solid #dfe6ec"; // adsContainer.style.paddingTop = "10px"; // adsContainer.style.paddingBottom = "0px"; // adsContainer.style.marginBottom = "10px"; // adsContainer.style.height = "110px"; // adsContainer.style.backgroundColor = "#f7f8fa"; // adsContainer.style.borderRadius = "5px"; if (adsContainer) { adsContainer.appendChild(scriptElement); adsContainer.appendChild(insElement); // Rechargez les annonces pour qu'elles soient affichées correctement (adsbygoogle = window.adsbygoogle || []).push({}); } } } }); }, 1000); </script> </body> </html>