使用 JavaScript 动态加载 CSS 文件

Load CSS file dynamically using JavaScript

本文关键字:CSS 文件 加载 动态 JavaScript 使用      更新时间:2023-09-26

我正在一个站点上工作,我需要检查远程主机上的CSS文件是否存在,然后加载同一CSS文件的本地副本(如果不存在)。

我正在处理的代码,

<script>
function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}
function AddLocalCss(){ document.write('<link rel="stylesheet" type="text/css"  href="css/html5-reset.min.css">') }
</script>
<script>!UrlExists('http://meyerweb.com/eric/tools/css/reset/reset.css') && AddLocalCss();</script>

但这会引发错误(在 Chrome 开发者工具中选中时)

XMLHttpRequest cannot load http://meyerweb.com/eric/tools/css/reset/reset.css. Origin http://example.com is not allowed by Access-Control-Allow-Origin.
Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101 

任何人都可以提出解决方案或解决方法来实现这一目标吗?

你可以使用这篇文章的一些功能:使用javascript动态加载css文件,回调没有jQuery,你可以直接使用那个函数。

我希望这会有所帮助

XHR 受到同源策略的限制 - 您不能在不跳过额外箍的情况下从另一个域/协议请求资源。您必须请求远程服务器来设置 CORS,或者根本不使用 XHR。

取而代之的是,您可以生成一个link元素并观察其状态或加载样式会影响的其他元素的状态。不幸的是,这种行为并没有跨浏览器标准化,但幸运的是,有一些库可以简化处理它。查看确保。