Dynamic CSS Loading Fails in IE: A Solution
In the pursuit of enhancing web page aesthetics, it is often necessary to dynamically load CSS stylesheets. While this technique works seamlessly in popular browsers like Firefox and Google Chrome, it stumbles upon an obstacle in Internet Explorer (IE).
Using jQuery, a common way to achieve dynamic CSS loading is:
var head = document.getElementsByTagName('head')[0]; $(document.createElement('link')) .attr({ type: 'text/css', href: '../../mz/mz.css', rel: 'stylesheet' }) .appendTo(head);
However, IE presents a unique challenge, as this method does not yield the desired results in this browser.
To overcome this hurdle, it is essential to adopt a browser-specific approach. When IE encounters a situation where all styles loaded with the page have been processed, the only reliable solution for adding additional stylesheets is to utilize the document.createStyleSheet(url) method.
An effective cross-browser implementation can be achieved by employing the following code:
url = 'style.css'; if (document.createStyleSheet) { document.createStyleSheet(url); } else { $('<link rel="stylesheet" type="text/css" href="' + url + '" />').appendTo('head'); }
By accommodating IE's unique behavior through the document.createStyleSheet method, it becomes possible to dynamically load CSS stylesheets in all major browsers, ensuring consistent visual enhancements across various platforms.
The above is the detailed content of Why Does Dynamic CSS Loading Fail in IE, and How Can I Fix It?. For more information, please follow other related articles on the PHP Chinese website!