$.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 关注
- 457 浏览
添加回答
举报
0/150
提交
取消