
Oh questo editor di testo di merda Reddit – ha rovinato l’intero blocco del codice! Proverò a risolverlo!
SRF Meteo è una delle pagine Web a cui possiamo accedere al lavoro. Ma la pagina Web meteorologica non visualizza le date dei giorni feriali indicati. Questo mi ha davvero infastidito. Veramente! Così ho deciso di cambiarlo e ho scritto un piccolo script di grasemonkey. Non sono un programmatore professionista – e forse ci sono modi migliori per farlo, non lo so. L’ho testato con Mozilla Firefox solo per Windows 10/11.
Per coloro che vogliono provarlo:
- Installa Mozilla Firefox
- Installa il componente aggiuntivo Firefox "Greasemonkey"
- Attiva il grasemonkey
- Fare clic su Greassemonkey-icon nella barra delle icone e fare clic su "Greasemonkey è disabilitato". Abiliterà l’addon. È un’impostazione a flip/flop. (vedi tutorial online)
- Crea una nuova sceneggiatura Greasemonkey
- Fai clic su Greasemonkey-icon e Klick "Nuovo script utente …" (Vedi tutorial per ulteriori informazioni)
- Copia lo script di seguito nel editor Greasemonkey
- Salva lo script
- Apri una nuova scheda browser Firefox e vai a: SRF Meteo web page
- pregare
Ancora una volta, non sono un programmatore professionista, ma forse qualcuno di SRF Meteo lo vede e recentirà questa funzione al loro IT e la volontà implementerà da soli. Perché: dopo ogni pagina Web riprogetta il codice si interrompe.
No, non posso usare wetter.com Né posso usare gli smartphone nel mio posto di lavoro.
E questo è il Greaesmonkey-Script (non ho idea di come GitHub e tali funzionino):
// == Usesscript ==
// Ultimo modificato: 30.11.23 / SISRT / V001
// 09.04.24 / Sisrt / V002 / Minor Fix
// 22.08.25 / SISRT / V003 / Fix come V002 non funziona più
// NOME SRF METEO – DATEADDER
// versione 0.0.3
// richiedere http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// richiedere https://gist.github.com/raw/2625891/waitforkeyelements.js
// concedere nessuno
// incontro https://www.srf.ch/meteo/wetter/
// incontro https://www.srf.ch/meteo/wetter/*
// ==/Usesscript ==
// Dichiarazioni della funzione Helper
const debug_mode = false;
const local_lc = "Questo è il"; // Data del formato in questo locale
/*
Old V002 – non funziona più con i nomi di questa classe
const span_class_name_anyday = "Weather-Day__Long"; // Cerca queste campate nella pagina web
const span_class_name_today = "Weather-Card Weather-Day";
*/
const span_class_name_anyday = "M: blocco M: base di testo M: LG: -MT-0 M: LG: TEXT-XL M: LG:[14px] M: LG: Tracking-0.4"; // Cerca queste campate nella pagina web
const span_class_name_today = "Weather-Card Weather-Day";
///// Dichiarazioni della funzione Helper Date – Inizia
Date.ProtoType.AddDays = function (Days) {
var date = new Date (this.valueof ());
date.setDate (date.getDate () + giorni);
Data di ritorno;
}
funzione getWeekDayNames (locale) {
var basatote = new Date (Date.UTC (2017, 0, 2)); // solo un lunedì
VAR NAME WEAKDIORS = [];
per (i = 0; i <7; i ++) {
weekdaynames.push (BasadAte.TolocaleDateString (locale, {Weekday: ‘long’}));
BasatoAte.setDate (BasadAte.getDate () + 1);
}
restituire nomi nei giorni feriali;
}
funzione getWeekDayName (locale, DateStr = new Date ()) {
var date = new Date (Datestr);
Data di ritorno.TolocaleDateString (locale, {Weekday: ‘long’});
}
///// Dichiarazioni della funzione Helper Date – fine
////// altre dichiarazioni di funzione – Inizia
funzione debugprint (s) {
if(DEBUG\_MODE) console.log(s);
} // debugprint ()
funzione debugalert (s) {
if(DEBUG\_MODE) alert(s);
} // debugalert ()
funzione injectdates (jnode) {
// get all week day names localized
var weekDayNames = getWeekDayNames(LOCAL\_LC);
// get all spans representing a weather forcast day
var spans = document.getElementsByClassName(SPAN\_CLASS\_NAME\_ANYDAY);
debugPrint("weekday spans found: " + spans.length);
// loop through all spans
for (var i = 0; i < spans.length; i++) {
var dt = new Date();
// just add index of span, if spans are in chronological order in html (assumptions)
dt = dt.adddays (i+1);
spans\[i\].innerHTML += ((i==0 ? "\ heute<br/>" : "<br/>") + dt.toLocaleDateString(LOCAL\_LC));
/*
Vecchio V002
// Se le campate non sono in ordine cronologico (vedi sopra) Converti invece: fallo:
// Nome nei giorni feriali di oggi
var weekdaynamEToday = getWeekDayName (local_lc);
var weekdayindextoday = weekdaynames.findIndex (item => item === weekdayNamEToday);
// InnerText contiene il nome nei giorni feriali in locale
VAR WEAKDYDNAMELOOKUP = Spans[i].ipertext;
// cerca il nome nei giorni feriali nella collezione localizzata precedentemente preparata
var weekdayindexlookup = weekdaynames.findIndex (Item => Item === WeekdayNamelookup);
var DayStoA
Console.log (WeekdayInDextoDay + " / " + weekdayindexlookup);
if (DayStoADD <0) {
DaySTOODD += 7;
}
console.log (daystoadd);
*/
}
/*
Vecchio V002
// Aggiorna l’odierna span e aggiungi “heute”, se le campate non sono in ordine cronologico
var spans = document.getElementsByClassName (span_class_name_today);
per (var i = 0; i if (campa[i].InnderText.rim () == "Oggi") { campate[i].innerHtml = "Oggi } } } // injectDates () ///// Altre dichiarazioni di funzione – fine // principale console.log ("SRF Meteo – DateAdder – Start"); // Richiede WaitForkeyelements.js & jquery.min.js waitforakeelements ( "[class='m:flex m:justify-center m:justify-normal! m:overflow-hidden m:bg-warmgrey-10 m:py-6 m:md:px-0 m:lg:justify-center! m:dark:bg-blue-950']"iniettate ); console.log ("SRF Meteo – DateAdder – fine");
" + WeekdayNametOday; \*/
debugAlert("done!");
I added dates to the SRF Meteo web page because the lack of them annoyed me every single day!
byu/SiSRT inSwitzerland
di SiSRT