Мне нужны были решения с максимальной поддержкой старых браузеров. В противном случае я бы сказал, что наиболее стильным будет либо метод 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 [одиннадцать лет назад].
Если у вас не так много данных, но вы по-прежнему хотите расширенную поддержку браузера, возможно, лучшим вариантом будет:
Мета-теги [от Robidu]
<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:
.hidden {
display: none;
}
<p class="hidden" id="yourData">Your data is here</p>