【问题标题】:Google CDN Hosted jQuery UI CSS with local fallback?谷歌 CDN 托管 jQuery UI CSS 与本地后备?
【发布时间】:2011-09-26 02:51:50
【问题描述】:

我已经为 JS 文件准备了以下内容:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">!window.jQuery && document.write(unescape("%3Cscript src='/app_shared/script/jquery-1.6.1.min.js' type='text/javascript'%3E%3C/script%3E"))</script>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js"></script>
<script type="text/javascript">!window.jQuery.ui && document.write(unescape("%3Cscript src='/app_shared/script/jquery-ui.min.js' type='text/javascript'%3E%3C/script%3E"))</script>

我怎样才能为主题寻找类似的东西? 我可以像这样从 cdn 下载它:

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>

但是如何检测文件是否已下载,以在失败时引用本地副本? 我知道如何使用 jQuery 以编程方式添加本地副本,但我不知道如何检查 CSS 下载是否成功。另外,&lt;link&gt; 标签下载是阻塞的,还是异步的?这也是个问题。

【问题讨论】:

    标签: javascript jquery google-cdn


    【解决方案1】:

    您可以在字体应属于特定系列的位置进行样式检查,然后对照该系列名称进行检查。如果名称不是您所期望的,则加载本地副本。

    【讨论】:

    • 我正在寻找比这更强大/一致的东西
    • 真的没有别的办法了。您必须等到 css 加载然后检查一些样式。不是那个 element.style 不起作用。当说从外部文件加载的样式时,您还需要另一个。
    • CSS可以异步加载,所以我们需要模拟一个事件on_CSS_failed
    • 他们的另一种方法是使用 JS 加载 CSS 文件,然后使用 onError 事件查看它是否加载。不利的一面是,在文件加载之前,您会看到一些无样式的内容……就像使用基于 JS 的 Web 字体服务一样。
    【解决方案2】:

    你也可以试试Get a CSS value from external style sheet with Javascript/jQuery

    <style>
    p {color: blue}
    </style>
    
    $(document).ready(function() {
        var $p = $("<p></p>").hide().appendTo("body");
        alert($p.css("color"));
        $p.remove();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-03
      • 2015-11-24
      • 2011-07-09
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      相关资源
      最近更新 更多