在Firefox不支持,有没有解决办法

ly8199 2008-08-21 10:43:54
以下代码在IE执行正常,在FIREFOX不支持。。有什么方法可以支持吗?



1.asp
----------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试</title>
<script language="JavaScript" src="returnhtm.js" type="text/javascript"></script>
</head>

<body>
<div id="temp">abc</div>
<script>
getshow('2.asp','temp');
</script>

</body>
</html>
----------------------------------------------------------------

returnhtm.js
----------------------------------------------------------------
var filesadded = ""
//创建XMLHttpRequest对象
var http = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

function getshow(url,div_name){
document.getElementById(div_name).innerHTML="<img src=images/loading.gif />载入数据中......";
http.open("GET",url,false);
http.onreadystatechange=function(){gethandleHttpResponse(div_name)};
http.setRequestHeader("Content-Type","text/html;encoding=GB2312");
http.send(null);
return;
}

function postshow(url,div_name,parameter){
document.getElementById(div_name).innerHTML="<img src=images/loading.gif />载入数据中......";
http.open("POST",url,false);
http.onreadystatechange=function(){gethandleHttpResponse(div_name)};
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http.send(parameter);
return;
}

function gethandleHttpResponse(div_name){
if(http.readyState==4){
if(http.status==200){
if(http.responseText!=""){
htmlText=http.responseText;
var DomJs=htmlText.match(/<load-js>[\s\S]+?<\/load-js>/g);//获取载入JS文件
var DomCss=htmlText.match(/<load-css>[\s\S]+?<\/load-css>/g);//获取载入CSS文件
var DomScript=htmlText.match(/<load-script>[\s\S]+?<\/load-script>/g);//获取载入函数
var MyScript=htmlText.match(/<run-script>[\s\S]+?<\/run-script>/g);//获取执行语句
htmlText=htmlText.replace(/<load-js>[\s\S]+?<\/load-js>/g,"")//删除载入JS文件文本
htmlText=htmlText.replace(/<load-css>[\s\S]+?<\/load-css>/g,"")//删除载入CSS文件文本
htmlText=htmlText.replace(/<load-script>[\s\S]+?<\/load-script>/g,"")//删除载入函数文本
htmlText=htmlText.replace(/<run-script>[\s\S]+?<\/run-script>/g,"")//删除执行语句文本
document.getElementById(div_name).innerHTML=htmlText;//输出文本

//载入JS文件,以<load-js>开头</load-js>结束
if(DomJs!=null){
for(i=0;i<DomJs.length;i++){
DomJs[i]=DomJs[i].replace(/<load-js>/g,"");
DomJs[i]=DomJs[i].replace(/<\/load-js>/g,"");

if (filesadded.indexOf("["+DomJs[i]+"]")==-1){
var headerDom=document.getElementsByTagName('head')[0];
var jsDom=document.createElement('script');
jsDom.setAttribute("type","text/javascript");
jsDom.setAttribute("src",DomJs[i]);
headerDom.appendChild(jsDom);
filesadded += "["+DomJs[i]+"]";
}
}
}
//载入CSS文件,以<load-css>开头</load-css>结束
if(DomCss!=null){
for(i=0;i<DomCss.length;i++){
DomCss[i]=DomCss[i].replace(/<load-css>/g,"");
DomCss[i]=DomCss[i].replace(/<\/load-css>/g,"");

if (filesadded.indexOf("["+DomCss[i]+"]")==-1){
var headerDom=document.getElementsByTagName('head')[0];
var jsDom=document.createElement('link');
jsDom.setAttribute("rel", "stylesheet");
jsDom.setAttribute("type","text/javascript");
jsDom.setAttribute("href",DomCss[i]);
headerDom.appendChild(jsDom);
filesadded += "["+DomCss[i]+"]";
}
}
}
//载入JS函数,以<load-script>开头</load-script>结束
if(DomScript!=null){
for(i=0;i<DomScript.length;i++){
DomScript[i]=DomScript[i].replace(/<load-script>/g,"");
DomScript[i]=DomScript[i].replace(/<\/load-script>/g,"");

var headerDom=document.getElementsByTagName('head').item(0);
var jsDom=document.createElement('script');
jsDom.type='text/javascript';
jsDom.language='javascript';
jsDom.defer=true;
jsDom.text=DomScript[i];
headerDom.appendChild(jsDom);
}
}
//执行JS,以<run-script>开头</run-script>结束
if(MyScript!=null){
for(i=0;i<MyScript.length;i++){
MyScript[i]=MyScript[i].replace(/<run-script>/g,"");
MyScript[i]=MyScript[i].replace(/<\/run-script>/g,"");
eval(MyScript[i]);
}
}
}
}else{document.getElementById(div_name).innerHTML="你所请求的页面发生异常,可能会影响你浏览该页的信息!"+http.status;}
}
}
----------------------------------------------------------------

2.asp
----------------------------------------------------------------
111111111111111111111111
----------------------------------------------------------------
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly8199 2008-08-21
  • 打赏
  • 举报
回复
<div id="temp">abc </div>

执行后的效果

IE下是 <div id="temp">111111111111111111111111</div>

FF下是 <div id="temp"><img src=images/loading.gif />载入数据中......</div>


要怎么改才能让FF实现IE下显示的效果?
xumv_com 2008-08-21
  • 打赏
  • 举报
回复
jsDom.setAttribute("rel", "stylesheet");
好象只有ie支持
yxlsd 2008-08-21
  • 打赏
  • 举报
回复
错误信息是什么
西安风影 2008-08-21
  • 打赏
  • 举报
回复
FF和IE在dom操作时会有细微差别
iuhxq 2008-08-21
  • 打赏
  • 举报
回复
你的代码太多了,还是用我给你的简洁
ly8199 2008-08-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iuhxq 的回复:]
function $(o){return document.getElementById(o);}

function XHConn()
{
var xmlhttp, bComplete = false;
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) { try { xmlhttp = new XMLHttpRequest(); }
catch (e) { xmlhttp = false; }}}
if (!xmlhttp) return null;
this.connect = function(s…
[/Quote]

能不能把我上面的代码修改一下。。。
iuhxq 2008-08-21
  • 打赏
  • 举报
回复
function $(o){return document.getElementById(o);}

function XHConn()
{
var xmlhttp, bComplete = false;
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) { try { xmlhttp = new XMLHttpRequest(); }
catch (e) { xmlhttp = false; }}}
if (!xmlhttp) return null;
this.connect = function(sURL, sMethod, sVars, fnDone)
{
if (!xmlhttp) return false;
bComplete = false;
sMethod = sMethod.toUpperCase();

try {
if (sMethod == "GET")
{
xmlhttp.open(sMethod, sURL+"?"+sVars, true);
sVars = "";
}
else
{
xmlhttp.open(sMethod, sURL, true);
xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && !bComplete)
{
bComplete = true;
fnDone(xmlhttp);
}};
xmlhttp.send(sVars);
}
catch(z) { return false; }
return true;
};
return this;
}

function Update(element, url, method, data, call)
{
var xh = new XHConn();
xh.connect(url, method, data, function(o){$(element).innerHTML = o.responseText;call();});
}

Update('temp', '2.asp', 'GET', '', null);

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧