นี่คือวิธี "โรงเรียนเก่า" ในการดำเนินการซึ่งหวังว่าจะใช้ได้กับทุกเบราว์เซอร์ ในทางทฤษฎีคุณจะใช้setAttribute
น่าเสียดายที่ IE6 ไม่รองรับอย่างสม่ำเสมอ
var cssId = 'myCss'; // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'http://website.com/css/stylesheet.css';
link.media = 'all';
head.appendChild(link);
}
ตัวอย่างนี้ตรวจสอบว่า CSS ถูกเพิ่มไปแล้วหรือไม่ดังนั้นมันจะเพิ่มเพียงครั้งเดียว
ใส่รหัสนั้นลงในไฟล์ javascript ให้ผู้ใช้ปลายทางใส่เพียงแค่จาวาสคริปต์และตรวจสอบให้แน่ใจว่าเส้นทาง CSS นั้นสมบูรณ์ดังนั้นจึงโหลดจากเซิร์ฟเวอร์ของคุณ
VanillaJS
นี่คือตัวอย่างที่ใช้ JavaScript ธรรมดาเพื่อแทรกลิงก์ CSS ลงในhead
องค์ประกอบตามส่วนของชื่อไฟล์ของ URL:
<script type="text/javascript">
var file = location.pathname.split( "/" ).pop();
var link = document.createElement( "link" );
link.href = file.substr( 0, file.lastIndexOf( "." ) ) + ".css";
link.type = "text/css";
link.rel = "stylesheet";
link.media = "screen,print";
document.getElementsByTagName( "head" )[0].appendChild( link );
</script>
ใส่รหัสก่อนhead
แท็กปิดและ CSS จะโหลดก่อนที่จะแสดงผลหน้า การใช้.js
ไฟล์JavaScript ( ) ภายนอกจะทำให้แฟลชของเนื้อหาที่ไม่มีการจัดรูปแบบ ( FOUC ) ปรากฏขึ้น