loadjscss.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /**
  2. * 功能:
  3. * 动态加载js和css文件。
  4. * 具体的使用方法见:
  5. * demo/loadjsdemo.htm
  6. */
  7. var JsLoader={
  8. //预计加载个数
  9. LoadCount:0,
  10. //已经加载个数
  11. LoaderNumber:0,
  12. Load:function(js,id,callback){
  13. var scriptId = document.getElementById(id);
  14. if (scriptId) {
  15. if (callback)
  16. callback();
  17. JsLoader.LoaderNumber+=1;
  18. //加载个数大于或等于预计加载个数,则触发加载完毕事件
  19. if (JsLoader.LoaderNumber >= JsLoader.LoadCount){
  20. if (JsLoader.OnLoad)
  21. JsLoader.OnLoad();
  22. }
  23. }
  24. else {
  25. var script = document.createElement("script");
  26. script.id = id;
  27. script.type = "text/javascript";
  28. script.onload = script.onreadystatechange = function(){
  29. if (script.readyState && script.readyState != 'loaded' && script.readyState != 'complete'){
  30. return;
  31. }
  32. script.onreadystatechange = script.onload = null;
  33. //当前文件加载完毕,触发回调事件
  34. if (callback)
  35. callback();
  36. JsLoader.LoaderNumber+=1;
  37. //加载个数大于或等于预计加载个数,则触发加载完毕事件
  38. if (JsLoader.LoaderNumber >= JsLoader.LoadCount)
  39. if (JsLoader.OnLoad)
  40. JsLoader.OnLoad();
  41. };
  42. script.src = js;
  43. var head = document.getElementsByTagName('head').item(0);
  44. head.appendChild (script);
  45. }
  46. }
  47. };
  48. /*Css 动态加载*/
  49. var CssLoader={
  50. //预计加载个数
  51. LoadCount:0,
  52. LoaderNumber:0,
  53. Load:function(css,id,callback){
  54. var cssId = document.getElementById(id);
  55. if (cssId) {
  56. if (callback)
  57. callback();
  58. CssLoader.LoaderNumber+=1;
  59. //加载个数大于或等于预计加载个数,则触发加载完毕事件
  60. if (CssLoader.LoaderNumber >= CssLoader.LoadCount)
  61. if (CssLoader.OnLoad)
  62. CssLoader.OnLoad();
  63. }
  64. else{
  65. var link = document.createElement("link");
  66. link.id = id;
  67. link.rel="stylesheet";
  68. link.type = "text/css";
  69. link.onload = link.onreadystatechange = function(){
  70. if (link.readyState && link.readyState != 'loaded' && link.readyState != 'complete'){
  71. return;
  72. }
  73. link.onreadystatechange = link.onload = null;
  74. //当前文件加载完毕,触发回调事件
  75. if (callback)
  76. callback();
  77. CssLoader.LoaderNumber+=1;
  78. //加载个数大于或等于预计加载个数,则触发加载完毕事件
  79. if (CssLoader.LoaderNumber >= CssLoader.LoadCount)
  80. if (CssLoader.OnLoad)
  81. CssLoader.OnLoad();
  82. };
  83. link.src = css;
  84. var head = document.getElementsByTagName('head').item(0);
  85. head.appendChild (link);
  86. }
  87. }
  88. };