¿Tampermonkey waitForKeyElements refresca la página después de hacer clic y crea un bucle infinito?
Estoy tratando de hacer clic automáticamente en el botón “¿Sigue viendo? El video se pausará pronto” en YouTube para que mis videos no se detengan después de cierta cantidad de tiempo. He creado un script de Tampermonkey/Greasemonkey para hacer clic en el botón cuando aparezca usando waitForKeyElements. Parece funcionar, ya que hace clic en el mensaje emergente. Pero a veces entra en un bucle infinito donde hace clic en el botón del mensaje emergente y luego actualiza la página. El botón volverá a aparecer después de la actualización y luego se volverá a hacer clic en él y se repetirá ad infinitum.
He proporcionado una captura de pantalla de lo que estoy describiendo. Observa el mensaje emergente de YouTube en la esquina inferior izquierda:
Aquí está el código para el script de Tampermonkey:
// ==UserScript==
// @name YouTube Yes 4
// @include https://www.youtube.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
waitForKeyElements(
".yt-button-renderer", hacerClic
);
function hacerClic(TargetLink) {
TargetLink = $("a:contains('Sí')")
if (TargetLink.length)
window.location.href = TargetLink[0].href
}
Edit: Aquí tienes un script actualizado que utiliza .click():
waitForKeyElements(
"tp-yt-paper-button#button.style-scope.yt-button-renderer.style-blue-text.size-default", hacerClic
);
function hacerClic() {
$("tp-yt-paper-button#button.style-scope.yt-button-renderer.style-blue-text.size-default:contains('Sí')").click();
}
Cualquier ayuda sería muy apreciada. ¡Felices fiestas!
davy.ai
Para resolver el problema del script de Tampermonkey que hace clic en el botón emergente y luego actualiza la página, el script puede actualizarse para usar la función .click() en lugar de cambiar window.location.href. Aquí está el script actualizado:
Al utilizar .click(), el script solo hará clic en el botón sin cambiar de página, evitando el ciclo infinito.