document.querySelector() | Se utiliza para seleccionar el elemento HTML para actualizar dinámicamente el título de la pestaña del navegador. Este método es específico para seleccionar elementos según su selector CSS y aquí ayuda a cambiar el título de la página según el valor del temporizador seleccionado.</td> </tr> <tr> <td>addEventListener()</td> <td>Vincula un evento específico (por ejemplo, hacer clic) a un elemento de botón. En este contexto, se utiliza para activar la función changeTimer() cuando un usuario hace clic en un botón, lo que permite una interacción dinámica con la configuración del temporizador.</td> </tr> <tr> <td>innerText</td> <td>Esta propiedad permite modificar el texto visible dentro de un elemento HTML. En esta solución, se utiliza para actualizar el valor del temporizador en el título de la página cuando se hace clic en un botón.</td> </tr> <tr> <td>onClick</td> <td>Un atributo de controlador de eventos en línea utilizado en el enfoque alternativo para adjuntar la función changeTimer() directamente al evento de clic del botón. Esto permite una forma más sencilla y menos modular de actualizar el temporizador dinámicamente.</td> </tr> <tr> <td>test()</td> <td>Este método se utiliza en pruebas unitarias con Jest. Define un caso de prueba donde la función que se está probando (por ejemplo, changeTimer()) se evalúa para garantizar que el temporizador se actualice correctamente. Garantiza que el código se comporte como se espera en diferentes escenarios.</td> </tr> <tr> <td>expect()</td> <td>Un comando Jest que comprueba si el valor real (como el temporizador actualizado) coincide con el valor esperado. Se utiliza en pruebas unitarias para verificar que gameTime y document.title se actualicen correctamente después de hacer clic en un botón.</td> </tr> <tr> <td>toBe()</td> <td>Otro comando de Jest que verifica la igualdad estricta. Garantiza que después de llamar a changeTimer(), el tiempo de juego sea exactamente el esperado (por ejemplo, 30.000 ms durante 30 segundos).</td> </tr> <tr> <td>getElementById()</td> <td>Se utiliza para seleccionar botones específicos por sus ID (por ejemplo, "treinta", "sesenta"). Este método es importante para conectar detectores de eventos a los botones y activar el cambio dinámico del temporizador en respuesta a la interacción del usuario.</td> </tr></table><h3 id="dev1">Creación de temporizadores dinámicos utilizando botones JavaScript y HTML</h3><div class="bordersh3"></div><p>Los scripts proporcionados anteriormente están diseñados para permitir al usuario ajustar dinámicamente el cronómetro del juego en un juego de mecanografía haciendo clic en los botones HTML. Inicialmente declaramos una variable. <b>tiempo de juego</b>, que mantiene el tiempo en milisegundos (30 segundos de forma predeterminada, multiplicado por 1000 para convertir a milisegundos). La funcionalidad clave reside en la <b>cambiar temporizador</b> función, que actualiza el valor del temporizador según el botón pulsado. Este método recibe el valor del botón (por ejemplo, 30, 60 o 90) y actualiza el tiempo de juego variable en consecuencia. Además, el script actualiza el título de la página para reflejar la duración del temporizador seleccionado, dejando claro a los usuarios cuánto tiempo tienen.</p><p>Para el comportamiento dinámico, utilizamos detectores de eventos, específicamente el <b>agregarEventListener</b> dominio. Esto permite que el script reaccione cuando un usuario hace clic en cualquiera de los botones. A cada botón se le asigna una ID y, cuando se hace clic, activa el <b>cambiar temporizador</b> función, pasando el valor de tiempo respectivo. Este enfoque es útil para manejar múltiples botones de manera eficiente sin necesidad de JavaScript en línea repetitivo en la estructura HTML. El script también incluye una opción alternativa donde puede usar controladores de eventos en línea como <b>al hacer clic</b> si se prefiere la simplicidad a la modularidad.</p><p>En la solución alternativa, vinculamos directamente el <b>al hacer clic</b> evento a los botones. Este método ejecuta el <b>cambiar temporizador</b> funcionan directamente al hacer clic en el botón. Es un enfoque sencillo pero carece de la flexibilidad del método de escucha de eventos. La simplicidad de este método es útil para aplicaciones más pequeñas y menos complejas. Sin embargo, para un código más escalable, los detectores de eventos ofrecen más flexibilidad y permiten actualizaciones más sencillas del script sin modificar directamente la estructura HTML. Ambos métodos tienen como objetivo resolver el mismo problema, que es ajustar el temporizador y actualizar el título dinámicamente según la selección del usuario.</p><p>Por último, implementamos pruebas unitarias utilizando Jest, un marco de prueba de JavaScript. El <b>prueba</b> Las funciones son cruciales para validar que el temporizador se actualice correctamente. Al probar múltiples escenarios, como si el temporizador se ajusta a 30 segundos, 60 segundos o 90 segundos, estas pruebas unitarias garantizan la exactitud del script. Comandos como <b>esperar</b> y <b>ser</b> se utilizan para verificar que el valor real del temporizador y el título de la página coincidan con los resultados esperados. Esta fase de prueba garantiza que la lógica del temporizador funcione correctamente en diferentes casos de uso, lo que brinda confianza en la solidez de su solución.<div id="script0"><h3>Cambiar el valor del temporizador con botones HTML para un juego de mecanografía</h3><div class="bordersh3"></div><p class="langprog">Enfoque de interfaz de usuario basado en JavaScript con actualización dinámica de tiempo y ajuste de títulos</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>Enfoque alternativo: uso de funciones HTML y JavaScript en línea</h3><div class="bordersh3"></div><p class="langprog">JavaScript en línea en HTML con llamadas a funciones directas al hacer clic en un botón</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>Pruebas unitarias para cambios de valores del temporizador en diferentes entornos</h3><div class="bordersh3"></div><p class="langprog">Pruebas unitarias basadas en JavaScript que utilizan Jest para la validación del entorno 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>Mejora de la interacción del juego con la personalización del temporizador</h3><div class="bordersh3"></div><p>Otro aspecto a considerar al cambiar el cronómetro en un juego de mecanografía es la interfaz y la experiencia general del usuario. Además de ajustar el cronómetro del juego mediante botones, es importante brindar a los jugadores información visual sobre el cronómetro seleccionado. Esto se puede lograr actualizando otros elementos de la página, como una visualización de cuenta regresiva. Después de hacer clic en un botón para configurar el temporizador, la cuenta atrás debería comenzar inmediatamente, proporcionando información en tiempo real al usuario. Esto garantiza que la interacción sea fluida e intuitiva, lo que hace que el juego sea más atractivo.</p><p>Para implementar esto, puede utilizar JavaScript <b>establecer intervalo</b> función. Una vez configurado el cronómetro, establecer intervalo se puede utilizar para crear una cuenta regresiva que disminuya el valor del temporizador cada segundo. Cuando el cronómetro llega a cero, la función puede detener el juego o alertar al usuario de que se acabó el tiempo. Esta funcionalidad, combinada con la capacidad de cambiar dinámicamente el temporizador mediante botones, mejora significativamente la experiencia de juego. Una interfaz receptiva es clave para mantener a los jugadores interesados, y la retroalimentación en tiempo real es una forma de lograrlo.</p><p>Además, se debe considerar el manejo de errores. Por ejemplo, si un usuario intenta iniciar el juego sin configurar un temporizador, puedes indicarle con un mensaje que seleccione un tiempo válido. Al incorporar mecanismos de validación, garantiza que el juego funcione sin problemas y reduzca posibles problemas. Este tipo de validación no solo mejora la experiencia del usuario sino que también contribuye a la confiabilidad del juego, asegurando que los jugadores no enfrenten confusiones innecesarias.</p><div id="newfaq"><div id="adsense-article-faq"></div><h4 id="faq">Preguntas comunes sobre la personalización del temporizador en JavaScript</h4><div class="bordersh4"></div><ol> <li>¿Cómo uso? <strong>setInterval</strong> para crear una cuenta regresiva?</li> <li>puedes usar <strong>setInterval</strong> configurándolo para que se ejecute cada 1000 milisegundos (1 segundo) y disminuyendo el valor del temporizador cada vez. Cuando el valor llega a cero, puede detener la cuenta regresiva usando <strong>clearInterval</strong>.</li> <li>¿Cuál es el propósito de <strong>clearInterval</strong>?</li> <li><strong>clearInterval</strong> se utiliza para detener una cuenta regresiva o cualquier otra acción recurrente iniciada por <strong>setInterval</strong>. Es fundamental garantizar que la cuenta atrás se detenga cuando llegue a cero.</li> <li>¿Cómo puedo actualizar el título HTML dinámicamente?</li> <li>Usar <strong>document.title</strong> para establecer el texto del título de la página. Esto se puede actualizar dentro de su <strong>changeTimer</strong> función basada en el valor de tiempo seleccionado.</li> <li>¿Puedo manejar los errores del usuario al seleccionar un temporizador?</li> <li>Sí, puede agregar validación verificando si se ha seleccionado una opción de temporizador válida antes de comenzar la cuenta regresiva. Si no se elige una hora válida, puede mostrar una alerta o un mensaje.</li> <li>¿Cómo activo una función cuando se hace clic en un botón?</li> <li>Puede adjuntar una función a un botón usando <strong>addEventListener</strong> o usando directamente <strong>onClick</strong> en el elemento HTML del botón.</li></ol></div><div id="summary"><h4>Reflexiones finales sobre la personalización del temporizador</h4><div class="bordersh4"></div><p>La incorporación de ajustes dinámicos del temporizador en un juego de mecanografía mejora significativamente la experiencia del jugador. Al permitir a los usuarios cambiar el cronómetro usando simples botones HTML y actualizar la interfaz del juego en tiempo real, los desarrolladores pueden hacer que sus juegos sean más interactivos y flexibles. Este tipo de control ayuda a adaptarse a diferentes niveles de habilidad.</p><p>El uso de mejores prácticas, como detectores de eventos, manejo de errores y pruebas unitarias, garantiza que el juego se ejecute sin problemas y brinde una experiencia de usuario confiable. La implementación de estas características no sólo mejorará la funcionalidad del juego, sino que también mantendrá a los jugadores más comprometidos con mecánicas receptivas y fáciles de usar.</p><div id="source"> <h6>Fuentes y referencias para la personalización del temporizador</h6> <div class="bordersh2"></div> <ol> <li>Puede encontrar información detallada sobre el uso de JavaScript para la manipulación DOM y el manejo de eventos en <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide" target="_blank">Documentos web de MDN</a> .</li> <li>Para entender el <a href="https://jestjs.io/docs/getting-started" target="_blank">Broma</a> framework y su implementación para pruebas unitarias en aplicaciones JavaScript.</li> <li>Información completa sobre el uso <a href="https://www.w3schools.com/js/js_htmldom_eventlistener.asp" target="_blank">agregarEventListener</a> para manejar eventos en JavaScript están disponibles en W3Schools.</li> <li>La importancia de las actualizaciones en tiempo real en las aplicaciones web, incluidos los temporizadores, se analiza en <a href="https://www.smashingmagazine.com/2020/02/real-time-app-web/" target="_blank">Revista aplastante</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">¿Busca el correo temporal anónimo con mejores prestaciones de Internet? Nuestro servicio de correo temporal gratuito es el más completo, Recibe y envía correos electrónicos, Crea redirecciones a tus correos favoritos. Conserve su contraseña y utilice su correo temporal de por vida. POP3, IMAP y SMTP disponibles de forma gratuita.</p>
<div style="width:100%;text-align:right;">
<a class="read-more--with-arrow" href="https://www.tempmail.us.com/es/">
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 y pegar";
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,"¡Contenido copiado al portapapeles!","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: 'es',
addQueryCat: "AND catclean='javascript'",
page: page,
currentid: "100067",
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-al-ejecutar-procedimientos-almacenados-basados-en-javascript-en-snowflake-a-traves-de-dag-de-flujo-de-aire.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/es/snowflake/desafios-al-ejecutar-procedimientos-almacenados-basados-en-javascript-en-snowflake-a-traves-de-dag-de-flujo-de-aire');
// Charger la page suivante
chargerPageSuivante('https://www.tempmail.us.com/es/snowflake/desafios-al-ejecutar-procedimientos-almacenados-basados-en-javascript-en-snowflake-a-traves-de-dag-de-flujo-de-aire');
// 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-el-valor-del-temporizador-de-javascript-para-un-juego-de-mecanografia-utilizando-botones-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>
|