论坛首页 入门技术论坛

写js加载器遇到的 ie如何处理"?"

浏览 1626 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-07-30  
scriptaculous通过这种方式
<script src="scriptaculous.js?load=effects,dragdrop" type="text/javascript"></script>
实现js加载。
根据这个思想,编了个实现类似功能载入器,发现个问题ie,和firefox对"?"处理不同
本想实现root.js?load=但是经过调试发现firefox可以正常运行,ie则显示空白。?换成#则可以了。郁闷了,
哪位知道如何让ie能处理root.js?load=形式呢?

root.js
/*
 * head下嵌入如下代码,实现prototype1.5.js,check.js的载入
 * <script src="js/root.js#load=prototype1.5,check" type="text/javascript" dir="js/test"></script>
 * 
 * */
  (function (){
  	var jsDir=null;
  	var stag = document.getElementsByTagName("script");
  	stag=stag[stag.length-1];
  	var url = stag.getAttribute("src"); //"js/root.js#load=prototype,check"
  	var dir = stag.getAttribute("dir");// 载入js目录(可选参数)  "js/test"
  	var jspath; //js路径  :"js/"
  	var jsimps;//导入的js文件名:"prototype,check" 
  	var impjs; //<script type="text/javascript src="prototype1.5.js"></script>;
  	var jstag = "<script type=\"text/javascript\" src=\"";
  	if(url.indexOf("#")==-1){
  	   alert("载入错误");
  	}else{
  	  url=url.replace("root.js", "");  	  
  	  var urlarr=url.split("#load=");
  	  if(dir){
  	   	jspath=urlarr[0]+dir+"/";
  	  }else{
  	   	jspath =urlarr[0];
  	  }
  	  if(urlarr[1].indexOf(",")==-1){
  	  	jstag+=jspath+urlarr[1]+".js\"><\/script>";
  	    document.write(jstag);
  	  }else{
  	  	jsimps = urlarr[1].split(",");
  	  for(i in jsimps){
  	   impjs=jstag+jspath+jsimps[i]+".js\"><\/script>";
  	   document.write(impjs);  	   
  	   }
  	   
  	  }
 
  	}
  })();
  
   发表时间:2008-07-31  
通过这种形式
<script src="js/root.js#
load=prototype1.5,check" type="text/javascript" dir="js/test"></script>
程序实现js加载,但是看着"#"总不顺眼,谁能给个意见如何改成"?"

目前发现ie6加载不了<script src="js/root.js?
load=prototype1.5,check" type="text/javascript" dir="js/test"></script>  形式,firefox则没问题。

应该说清楚了吧。
0 请登录后投票
   发表时间:2008-07-31  
太粗心了,测试check.js错了,OK,IE没有这样的问题。可以正常加载,结贴
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics