Volevo soluzioni che supportassero quanto più possibile i vecchi browser. Altrimenti direi che il metodo currentScript o il metodo degli attributi dei dati sarebbero più eleganti.
Questo è l'unico di questi metodi non ancora menzionato qui. In particolare, se per qualche motivo disponi di grandi quantità di dati, l'opzione migliore potrebbe essere:
memoria locale
<script>
localStorage.setItem('data-1', 'I got a lot of data.');
localStorage.setItem('data-2', 'More of my data.');
localStorage.setItem('data-3', 'Even more data.');
</script>
var data1 = localStorage.getItem('data-1');
var data2 = localStorage.getItem('data-2');
var data3 = localStorage.getItem('data-3');
localStorage ha un supporto completo per i browser moderni e un supporto sorprendentemente buono anche per i browser più vecchi, tra gli altri a IE 8, Firefox 3,5 e Safari 4 [undici anni fa].
Se non disponi di molti dati, ma desideri comunque un ampio supporto del browser, forse l'opzione migliore è:
Meta tag [di Robidu]
<meta name="yourData" content="Your data is here" />
var data1 = document.getElementsByName('yourData')[0].content;
Il difetto di ciò è che il posto corretto per inserire i meta tag [fino all'HTML 4] è nel tag head e potresti non volere questi dati lassù. Per evitare ciò, o inserire meta tag nel corpo, potresti usare:
Paragrafo nascosto
<p hidden id="yourData">Your data is here</p>
var yourData = document.getElementById('yourData').innerHTML;
Per un supporto ancora maggiore del browser, potresti utilizzare una classe CSS invece dell'attributo nascosto:
.hidden {
display: none;
}
<p class="hidden" id="yourData">Your data is here</p>