Tôi muốn có các giải pháp với sự hỗ trợ của các trình duyệt cũ càng nhiều càng tốt. Nếu không, tôi muốn nói rằng currentScript hoặc phương thức thuộc tính dữ liệu sẽ là phong cách nhất.
Đây là phương pháp duy nhất chưa được đưa ra ở đây. Đặc biệt, nếu vì lý do nào đó bạn có lượng lớn dữ liệu, thì tùy chọn tốt nhất có thể là:
lưu trữ cục bộ
<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 có hỗ trợ trình duyệt hiện đại đầy đủ và hỗ trợ tốt đáng ngạc nhiên cho các trình duyệt cũ hơn, trở lại IE 8, Firefox 3,5 và Safari 4 [11 năm trở lại] trong số những trình duyệt khác.
Nếu bạn không có nhiều dữ liệu, nhưng vẫn muốn hỗ trợ trình duyệt rộng rãi, có thể lựa chọn tốt nhất là:
Thẻ meta [bởi Robidu]
<meta name="yourData" content="Your data is here" />
var data1 = document.getElementsByName('yourData')[0].content;
Lỗ hổng của điều này là vị trí chính xác để đặt thẻ meta [cho đến khi HTML 4] nằm trong thẻ head và bạn có thể không muốn dữ liệu này ở đó. Để tránh điều đó hoặc đặt thẻ meta trong nội dung, bạn có thể sử dụng:
Đoạn ẩn
<p hidden id="yourData">Your data is here</p>
var yourData = document.getElementById('yourData').innerHTML;
Để được hỗ trợ nhiều hơn cho trình duyệt, bạn có thể sử dụng lớp CSS thay vì thuộc tính ẩn:
.hidden {
display: none;
}
<p class="hidden" id="yourData">Your data is here</p>