Hay algunos sitios web que agregarán automáticamente '(1 mensaje)' en el título principal, y quiero eliminar los caracteres agregados.
Trato de usar 'observar' en el título del elemento para mantenerlo como original en un script de Tampermonkey, pero algunas páginas funcionan, algunas páginas con el mismo host no.
Incluso parece que no obtiene el título original real de la página que se ejecuta al inicio del documento, y funcionará una vez después de que el título cambie nuevamente.
Eso significa que el título de la página sigue agregando '(1 mensaje)' sin importar cuándo el título elimine '(1 mensaje)'.
¿Hay alguna otra forma de mantener el título como original o me perdí algo en el siguiente código?
// identify an element to observe var originalInnerHTML = document.getElementsByTagName("title")[0].innerHTML; var elementToObserve = window.document.getElementsByTagName("title")[0]; // create a new instance of 'MutationObserver' named 'observer', // passing it a callback function const observer = new MutationObserver(function(mutationsList, observer) { console.log(mutationsList); var titleElement=document.getElementsByTagName("title")[0]; titleElement.innerHTML = originalInnerHTML; observer.disconnect();//stop the MutationObserver }); // call 'observe' on that MutationObserver instance, // passing it the element to observe, and the options object observer.observe(elementToObserve, {characterData: true, childList: true, attributes: true, subtree: true}); El observador debe trabajar. Lo que salta a la vista es que estás desconectando al observador la primera vez que ve un cambio. Así que no verá el próximo cambio. Para solucionarlo, elimine la llamada para disconnect .
Si arregla eso pero descubre que el observador no es confiable (lo que me sorprendería), entonces adoptaría un enfoque simple:
const originalTitle = document.title; setInterval(() => { document.title = originalTitle; }, 100);Eso tomará el título cuando se ejecute el código y luego reemplazará repetidamente el título anterior con él, cada décima de segundo. (O hágalo cada cuarto de segundo, 250 ms, o lo que sea). Tenga en cuenta que los navegadores quitarán prioridad a los temporizadores en pestañas inactivas, pero eso debería afectar su código actualizando el título tanto como su código actualizando el título.
(Nota al margen: he usadodocument.title allí, ya que es más simple que el enfoque getElementsByTagName("title")[0].innerHTML ).