ฉันต้องการโซลูชันที่รองรับเบราว์เซอร์รุ่นเก่าให้ได้มากที่สุด ไม่เช่นนั้นฉันจะบอกว่าวิธีcurrentScriptหรือdata attributesจะมีสไตล์ที่สุด
นี่เป็นวิธีเดียวที่ยังไม่ได้นำเสนอที่นี่ โดยเฉพาะอย่างยิ่งหากคุณมีข้อมูลจำนวนมากด้วยเหตุผลบางประการตัวเลือกที่ดีที่สุดอาจเป็น:
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 [11 ปีย้อนหลัง]
หากคุณมีข้อมูลไม่มาก แต่ยังต้องการการสนับสนุนเบราว์เซอร์ที่กว้างขวางตัวเลือกที่ดีที่สุดอาจเป็นดังนี้
เมตาแท็ก [โดย Robidu]
<meta name="yourData" content="Your data is here" />
var data1 = document.getElementsByName('yourData')[0].content;
ข้อบกพร่องของสิ่งนี้คือตำแหน่งที่ถูกต้องในการใส่เมตาแท็ก [จนถึง HTML 4] อยู่ในแท็ก head และคุณอาจไม่ต้องการให้ข้อมูลนี้อยู่ที่นั่น เพื่อหลีกเลี่ยงสิ่งนั้นหรือใส่เมตาแท็กในเนื้อหาคุณสามารถใช้ a:
ย่อหน้าที่ซ่อนอยู่
<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>