$.getScript('ajax/test.js', function() { alert('Load was performed.');});..就像上面的代碼可應要求加載外部JS一樣,是否有類似的功能可用于在需要時加載外部CSS樣式表?例如,當我在網站上使用燈箱(嵌入式彈出窗口)時,除非用戶要求,否則我希望避免在加載時加載燈箱JS和CSS文件。謝謝
3 回答

米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
是的:如果您創建一個<link>鏈接到樣式表的<head>標簽并將其添加到標簽,瀏覽器將加載該樣式表。
例如
$('head').append('<link rel="stylesheet" type="text/css" href="lightbox_stylesheet.css">');
但是,按照@peteorpeter的注釋,這在IE 8或更低版本中不起作用-在那兒,您需要執行以下任一操作:
<link> 在設置其之前附加href; 要么
使用IE的document.createStyleSheet()方法
另外,檢查鏈接是否已添加也無法在所有瀏覽器中可靠地工作。
我還要質疑您的前提的一部分:
我希望避免在用戶加載時加載燈箱JS和CSS文件,除非用戶要求。
為什么?減輕頁面重量?我可以理解這種需求,但是您應該使用其中的燈箱代碼來衡量CSS和JS文件的大小(在縮小和gzip后),如果沒有,請查看縮減是否值得:
按需加載的復雜性增加;和
燈箱的響應性略有降低(因為按需加載時,燈箱必須先等待自己的CSS和JS加載,然后才能執行其操作)
縮小并壓縮后,可能不會有太大差異。
請記住,您可以指示瀏覽器長時間緩存CSS和JS,這意味著僅當用戶訪問具有空緩存的網站時才下載該CSS和JS。
- 3 回答
- 0 關注
- 485 瀏覽
添加回答
舉報
0/150
提交
取消