2

我正在尝试找出一个解决方案,如果某些资源未正确加载,它将通知用户。

我已经建立了以下方法:

  1. 对于 CSS,我在 Trello 源代码中找到了示例:

    <div id="nocss"> 
      Your browser was unable to load all of Trello's resources. They may have been blocked by your firewall, proxy or browser configuration.
      <br>Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again. 
      <hr>
    </div> 
    

    在最后下载的 CSS 中有以下 CSS:

    #nocss {
     display: none;
    }
    
  2. 对于 JS,我创建了以下文章:加载外部 JavaScript 的最佳方法,但我不确定。

更新

小更新:最好的解决方案也适用于来自 CDN 的文件,因为它们是最大的问题。我有一个站点,我在其中添加了 jquery,并且在防火墙后面的公司中它被阻止了。

4

3 回答 3

1

而不是依赖任何其他方法,你可以使用

window.onload=function(){SomeJavaScriptCode};

或者

<body onload="SomeJavaScriptCode">

以上内容仅在加载页面的所有内容后才会执行。(onload 最常用于元素内,用于在网页完全加载所有内容(包括图像、脚本文件、CSS 文件等)后执行脚本。)

于 2013-09-13T09:20:43.157 回答
1

你可以用你的 javascript 做几乎相同的事情,就像你用你的 css 做的一样。

$(document).ready(function(){
    $("#nojs").css("display","none");
}

此代码使用 jquery。如果放入您的 javascript 文件的开头,它会在加载 javascript 后隐藏一个 div,就像您的 css 一样。(当然你需要一个<div id="nojs">

于 2013-09-13T09:05:16.830 回答
1

您可能希望为每个成功加载的 JS 文件向正文添加一个类(在每个 JS 文件中编写代码以向正文元素添加额外的 CSS 类,如下所示$(document.body).addClass("SomeClass"))。然后简单地检查

if (!$(document.body).hasClass("ALL YOUR CLASSES")){
    $("nojs").show();
}

这应该可以解决问题。

如果您无权访问这些文件并且无法修改它们,那么为什么要执行以下操作:( <script>!window.jQuery && document.write('<script src="js/jquery-1.4.2.min.js"><\/script>')</script>取自 HTML5 Boilerplate)

于 2013-09-13T09:11:08.847 回答