为了账号安全,请及时绑定邮箱和手机立即绑定

我可以根据要求加载外部样式表吗?

我可以根据要求加载外部样式表吗?

慕娘9325324 2019-12-04 09:39:37
$.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。


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信