Is there a $.getScript
equivalent in jQuery, but for loading stylesheets?
相关问题
- How to fix IE ClearType + jQuery opacity problem i
- jQuery add and remove delay
- Adding a timeout to a render function in ReactJS
- Include empty value fields in jQuery .serialize()
- Disable Browser onUnload on certain links?
I have created an alternative to
$.getScript
that handles stylesheets. I called it $.getStylesheet for obvious reasons.It implements the
$.Deferred
object, which means you can chain things like so:Here is the little function for $.getStylesheet. It is just hosted on Github gist, so I can update it if I need to.
you can use same method $.getScript to "download" style sheet, since $.getScript actually is just another HTTP request. but it will be a bit wired since css is not executable.
CSS is not a script, so you dont have to "execute" it in the sense of script execution.
Basically a
<link>
tag created on the fly and appended to the header should suffice, likeor
if you want to do it without jQuery.
The browser will respond to the change in the DOM and update your page layout accordingly.
EDIT:
I have read that old Internet Explorer has trouble with this, and you might need to do it like in answer to make it work:
https://stackoverflow.com/a/2685639/618206
EDIT2:
Reading the file content and putting it inline (between
<style>
tags) is also a valid solution, but that way the CSS will not be cached by the browser.Here is a function that will load CSS files with a success or failure callback. I think this approach is better than the accepted answer because inserting a element into the DOM with an HREF causes an additional browser request (albeit, the request will likely come from cache, depending on response headers).
Usage as so:
Here is another function that will load both CSS and javascript files: