Я хотів рішення з якомога більшою підтримкою старих браузерів. В іншому випадку я б сказав, що метод currentScript або метод атрибутів даних буде найбільш стильним.
Це єдиний із цих методів, який тут ще не піднімався. Зокрема, якщо з якихось причин у вас є великий обсяг даних, то найкращим варіантом може бути:
localStorage
<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 має повну підтримку сучасних браузерів і напрочуд хорошу підтримку і старих браузерів, повертаючись до IE 8, Firefox 3,5 та Safari 4 [одинадцять років тому], серед інших.
Якщо у вас недостатньо даних, але ви все ще хочете розширити підтримку браузера, можливо, найкращим варіантом є:
Метатеги [від Робіду]
<meta name="yourData" content="Your data is here" />
var data1 = document.getElementsByName('yourData')[0].content;
Недоліком цього є те, що правильно розміщувати метатеги [до HTML 4] в головному тегу, і ви, можливо, не хочете, щоб ці дані були там. Щоб уникнути цього або ввести метатеги в тіло, ви можете використовувати:
Прихований абзац
<p hidden id="yourData">Your data is here</p>
var yourData = document.getElementById('yourData').innerHTML;
Для ще більшої підтримки браузера ви можете використовувати клас CSS замість прихованого атрибута:
.hidden {
display: none;
}
<p class="hidden" id="yourData">Your data is here</p>