Đây là cách làm "trường học cũ", hy vọng sẽ hoạt động trên tất cả các trình duyệt. Về lý thuyết, bạn sẽ setAttribute
không may sử dụng IE6 không hỗ trợ nó một cách nhất quán.
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);
}
Ví dụ này kiểm tra xem CSS đã được thêm hay chưa, vì vậy nó chỉ thêm một lần.
Đặt mã đó vào tệp javascript, yêu cầu người dùng cuối chỉ cần bao gồm javascript và đảm bảo đường dẫn CSS là tuyệt đối để nó được tải từ máy chủ của bạn.
VanillaJS
Dưới đây là một ví dụ sử dụng JavaScript đơn giản để đưa liên kết CSS vào head
phần tử dựa trên phần tên tệp của 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>
Chèn mã ngay trước head
thẻ đóng và CSS sẽ được tải trước khi trang được hiển thị. Sử dụng .js
tệp JavaScript ( ) bên ngoài sẽ khiến Flash có nội dung không được lọc ( FOUC ) xuất hiện.