当前位置: 首页 > 面试题库 >

如何使用Javascript加载CSS文件?

孙博艺
2023-03-14
问题内容

是否可以使用Javascript将CSS样式表导入html页面?如果是这样,怎么办?

附言:JavaScript将托管在我的网站上,但我希望用户能够放入<head>其网站的标签,并且它应该能够将托管在我的服务器上的CSS文件导入当前网页。(css文件和javascript文件都将托管在我的服务器上)。


问题答案:

这是这样做的“老派”方法,希望可以在所有浏览器上使用。从理论上讲,setAttribute不幸的是,您将使用IE6并不能始终支持它。

var cssId = 'myCss';  // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
    var head  = document.getElementsByTagName('head')[0];
    var link  = document.createElement('link');
    link.id   = cssId;
    link.rel  = 'stylesheet';
    link.type = 'text/css';
    link.href = 'http://website.com/css/stylesheet.css';
    link.media = 'all';
    head.appendChild(link);
}

此示例检查CSS是否已添加,因此仅添加一次。

将代码放入javascript文件中,让最终用户仅包含javascript,并确保CSS路径是绝对路径,以便从服务器中加载它。

VanillaJS

这是一个使用普通JavaScript将head基于URL的文件名部分的CSS链接注入元素的示例:

<script type="text/javascript">
var file = location.pathname.split( "/" ).pop();

var link = document.createElement( "link" );
link.href = file.substr( 0, file.lastIndexOf( "." ) ) + ".css";
link.type = "text/css";
link.rel = "stylesheet";
link.media = "screen,print";

document.getElementsByTagName( "head" )[0].appendChild( link );
</script>

在结束head标记之前插入代码,然后在呈现页面之前加载CSS。使用外部JavaScript(.js)文件将导致显示未样式化内容FOUC的Flash



 类似资料:
  • 问题内容: 我需要检查(使用Javascript)是否已加载CSS文件,如果未加载,则进行加载。jQuery很好。 问题答案: 只需检查一下是否存在一个元素,并将其属性设置为CSS文件的URL: 使用document.styleSheets集合,普通的JS方法也很简单:

  • 问题内容: 如何使用Javascript 添加CSS规则(例如)? 问题答案: 您也可以使用DOM Level 2 CSS接口(MDN)执行此操作: …(除了(自然地)IE8和更早版本以外的所有版本),它使用自己的边际差异措辞: 与createElement-set- innerHTML方法相比,此方法具有理论上的优势,因为您不必担心在innerHTML中放置特殊的HTML字符,但实际上,样式元素

  • 问题内容: 我已经在服务器上加载了一个CSS文件,所以我有一个URL。如何使用JQuery将其加载到我的Perl代码中? 所以目前我正在对梅森页面中的css进行硬编码,而该页面中缺少这样的内容 我想避免对此CSS进行硬编码? 问题答案: 我不明白为什么您不能只在该部分中插入元素,但这是一个jQuery代码片段:

  • 本文向大家介绍使用javaScript动态加载Js文件和Css文件,包括了使用javaScript动态加载Js文件和Css文件的使用技巧和注意事项,需要的朋友参考一下 JS动态加载CSS 在可换主题的界面中具有很重要的意义,用户可以根据自己的浏览习惯选择自己喜欢的页面显示方式,下面详细说明。 希望下面的方法对你有帮助。 (1)使用JavaScript动态加载Js文件 (2)使用JavaScript

  • 问题内容: 我有一个使用以下功能的功能: 创建链接元素并设置href = cssFile。 将链接元素插入head标签中。 创建一个div元素。 使用setAttribute设置类名称 身体上的div。 现在使用获取CSS规则值。 现在正在返回默认值,如果我在调用之前使用Firebug 等待 断点,则它将从注入的CSS返回CSS规则。 问候, 穆尼姆 问题答案: 这实际上是我所做的。 为了确保加载

  • 问题内容: 我试图用BottlePy返回一个html模板。这很好。但是,如果我在tpl文件中插入这样的javascript文件: 我收到404错误。 (无法加载资源:服务器响应状态为404(未找到)) 有谁知道如何解决这个问题? 这是我的脚本文件: 那就是模板文件,位于“ ./views”子文件夹中。 也许是开发服务器在其中查找我的js文件的“ rootPath / js / main.js”?