El script a continuación muestra en el plugin de ubicación el tooltip permanentemente y les da colores para ordenarlos según su tipo (eventos, lugares, etc.), estoy trabajando en una leyenda y quizás un filtro.
La situación es que funciona, pero solo después de actualizar la página, no funciona al acceder a la página desde la URL.
No hay diferencias en los errores de la consola en ambos casos y agregar un retraso mayor a la función no cambia nada.
¿Alguien ha experimentado esto al agregar js al encabezado desde el menú de edición de temas y ha encontrado una solución?
<script>
document.addEventListener('DOMContentLoaded', function() {
// Apply CSS to change the alt text style
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = `
/* Ensure alt text is bold, underlined, and has conditional color */
.leaflet-marker-pane img[alt] {
font-weight: bold !important; /* Make text bold */
text-decoration: underline !important; /* Underline the text */
white-space: nowrap; /* Prevent the text from wrapping to a new line */
}
`;
document.head.appendChild(style);
// Give the page a moment to load and the images to be rendered
setTimeout(function() {
var images = document.querySelectorAll('.leaflet-marker-pane img');
images.forEach(function(img) {
var title = img.getAttribute('title');
if (title) {
title = title.length > 10 ? title.substring(0, 10) + '..' : title;
img.setAttribute('alt', title);
img.setAttribute('title', title);
if (title.includes('/')) {
img.style.color = 'white';
} else {
img.style.color = 'black';
}
}
img.setAttribute('src', '');
});
}, 1000); // Delay execution by 1 second (1000 ms)
});
</script>
Si no me equivoco, dado que Discourse es una aplicación de página única, creo que tendrás que usar api.onPageChange() de la API de complementos para esto.
Bueno saberlo, no me molestaré en usar un adapted window.location.reload(true) en el encabezado para un framework de ember.js que podría haber sido una solución para esto.
¿Se está desaprobando el campo del encabezado por motivos de seguridad? El caso es que todavía es conveniente probar javascript vanilla en él.
De acuerdo, si JavaScript en las cabeceras queda obsoleto pronto, tendré que adaptar algunas cosas. Quizás este campo de cabecera podría tener un aviso sobre esta situación inminente.
Supongo que tiene sus razones, pero puede ser una lástima, ya que los scripts en las cabeceras son útiles y permiten ajustes rápidos para los administradores, como: cerrar el registro de eventos cuando un número específico coincide con una función de JavaScript para una categoría específica.
Lo siento, le respondí a Jay en lugar de a ti, quien dice que los scripts van a ser obsoletos. Me imagino que se refiere a los scripts de encabezado que son muy convenientes de usar para modificaciones rápidas, al igual que en cualquier CMS de sitios web.
Encontré una solución que recarga solo la página “mapa” cada vez que se accede a ella.
Me pregunto si vale la pena compartir esto con otros aquí si los scripts de encabezado van a ser obsoletos. El script de esta publicación permite categorías de color según el contenido del título de un evento en el mapa, esto debería ser cambiable rápidamente y no a través de la función de la API.
Creo que me malinterpretaste. Quise decir que las etiquetas de script en el encabezado como \u003cscript type=\"text/discourse-plugin\"\u003e y \u003cscript type=\"text/x-handlebars\"\u003e están obsoletas, no las etiquetas \u003cscript\u003e normales.
Sí, gracias por la aclaración, me alegra que podamos usar javascript. Echa un vistazo al código que he dejado si tienes tiempo, puede que todavía sea útil en entornos de Ember, recarga la página para que se aplique el js. No es lo más bonito, ¡pero funciona bien para la página del plugin del mapa!