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

$.getScript('ajax/test.js', function() {

  alert('Load was performed.');

});

..就像上面的代码可应要求加载外部JS一样,是否有类似的功能可用于在需要时加载外部CSS样式表?


例如,当我在网站上使用灯箱(嵌入式弹出窗口)时,除非用户要求,否则我希望避免在加载时加载灯箱JS和CSS文件。


谢谢


慕娘9325324
浏览 458回答 3
3回答

米琪卡哇伊

是的:如果您创建一个<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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery