js 用firefox的firebug报错误 "s is null" 错误行:if(s.indexOf('ajaxerror) != -1) {这是一个类似AJAX收藏的一段代码,在IE中点击收藏可以正常加载,但是在firefox中就是不行,会报错,就是:"s is null"
应该是firefox不支持这个语句:
var s = $('ajaxframe').contentWindow.document.documentElement.firstChild.nodeValue;
不知道怎么改才可以让firefox支持,下面是代码,请高人指点一下,在百度里找了N久都找不到解决方法,谢谢了.function ajaxpost_load() {var formid = ajaxpostHandle[0];
var func = ajaxpostHandle[1];
var timeout = ajaxpostHandle[2];var formstatus = '__' + formid;showloading('none');if(is_ie) {
var s = $('ajaxframe').contentWindow.document.XMLDocument.text;
} else {
var s = $('ajaxframe').contentWindow.document.documentElement.firstChild.nodeValue;
}
evaled = false;
if(s.indexOf('ajaxerror') != -1) {
evalscript(s);
evaled = true;
}
if(s.indexOf('ajaxok') != -1) {
ajaxpostresult = 1;
} else {
ajaxpostresult = 0;
}
//function
if(func) {
setTimeout(func + '(\'' + formid + '\',' + ajaxpostresult + ')', 10);
}if(!evaled && $(formstatus)) {
$(formstatus).style.display = '';
ajaxinnerhtml($(formstatus), s);
evalscript(s);
}formid.target = 'ajaxframe';
ajaxpostHandle = 0;
}
应该是firefox不支持这个语句:
var s = $('ajaxframe').contentWindow.document.documentElement.firstChild.nodeValue;
不知道怎么改才可以让firefox支持,下面是代码,请高人指点一下,在百度里找了N久都找不到解决方法,谢谢了.function ajaxpost_load() {var formid = ajaxpostHandle[0];
var func = ajaxpostHandle[1];
var timeout = ajaxpostHandle[2];var formstatus = '__' + formid;showloading('none');if(is_ie) {
var s = $('ajaxframe').contentWindow.document.XMLDocument.text;
} else {
var s = $('ajaxframe').contentWindow.document.documentElement.firstChild.nodeValue;
}
evaled = false;
if(s.indexOf('ajaxerror') != -1) {
evalscript(s);
evaled = true;
}
if(s.indexOf('ajaxok') != -1) {
ajaxpostresult = 1;
} else {
ajaxpostresult = 0;
}
//function
if(func) {
setTimeout(func + '(\'' + formid + '\',' + ajaxpostresult + ')', 10);
}if(!evaled && $(formstatus)) {
$(formstatus).style.display = '';
ajaxinnerhtml($(formstatus), s);
evalscript(s);
}formid.target = 'ajaxframe';
ajaxpostHandle = 0;
}
解决方案 »
- 请教如何使用正则表达式匹配ip地址有效范围
- 求解决版本之间的问题
- theTimer = setTimeout("NextPic()",<%=changetimer%>);
- javascript new的使用
- window.event.clientX是什么意思?
- 请问大家验证numeric(9,3)的正则怎么写啊?
- 为什么不能打印出所有的RGB颜色呢?
- 使用showModelessDialog方式打开子窗口,怎样在子窗口的Button中关闭父窗口?
- 问:一广告效果如何实现?
- 页面运行后自可最大化,没有上面和下面的状态栏
- 新手求助 这段代码 chrome和火狐无法显示
- JS调用MSCOMM32.OCX问题
你可以改成
var s = $('ajaxframe').contentWindow.document.documentElement.children[0].nodeValue;
var s = $('ajaxframe').contentWindow.document.documentElement.children[0].nodeValue;
还是不行,还是报s is null,有没其它用法?
原理讲解参见
http://dotnet.aspx.cc/file/firstElementChild-lastElementChild-previousElementSibling-nextElementSibling-childElementCount.aspx另外,你先调试出
$('ajaxframe')
$('ajaxframe').contentWindow
$('ajaxframe').contentWindow.document
$('ajaxframe').contentWindow.document.documentElement这些对象是否都存在
var y = n.firstChild;
while (y.nodeType!=1) {
y = y.nextSibling;
}
return y;
}
-------------
if(is_ie) {
var s = $('ajaxframe').contentWindow.document.XMLDocument.text;
} else {
var s = myfirstChild($('ajaxframe').contentWindow.document.documentElement).nodeValue;
}
试试这个!
s = $('ajaxframe').contentWindow.document.XMLDocument.text;
} catch(e) {
try {
s = $('ajaxframe').contentWindow.document.documentElement.firstChild.wholeText;
} catch(e) {
try {
s = $('ajaxframe').contentWindow.document.documentElement.firstChild.nodeValue;
} catch(e) {
s = '内部错误,无法显示此内容';//如果出现这个请检查域名是否相同
}
}
}