[英]How to make sure JQuery dynamically inject CSS properly and ready to use?
我知道我可以這樣注入這樣的CSS:
$(document).ready(function() {
$("a").click(function() {
$('head').append('<link rel="stylesheet" href="style2.css" type="text/css" />');
});
});
但是,這個異步。 即使我追加鏈接,也無法保證當時的css可用。 (因為CSS下載)所以,如果有另一個js同時運行並嘗試aasign一個類,那么1)它仍然可以工作嗎? 完全下載文件后,css會在以后應用嗎?
如果沒有,是否有類似回調或某些技巧的東西我可以用來知道css已完全下載?
如果你需要保證加載並且CSS肯定在同一個域上,你可以通過Ajax請求內容然后直接注入屬性。
通過在<head>
創建一個虛擬的<link>
元素並使用CSS文件的內容(作為字符串)調用text()
,我很幸運(至少在iOS中)。
例如,大致:
$("a").click(function() {
$.get('style2.css', function (data) {
$('link').text(data);
// Stuff that must happen after CSS injection here
});
})
但老實說,這是一個罕見的用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.