我的一位客户有一个在组件Mosets Tree
中开发的表单。在选择主类别时,它会自动显示子类别。现在的问题是;我不得不隐藏一些代码来停止显示一些东西,之后在我们选择主类别后显示子类别的java脚本在IE中不起作用。
代码:
<脚本>
var xmlhttp;
function stateChanged(){
if(xmlhttp.readyState == 4){
document.getElementById(“subCatId”)。innerHTML = xmlhttp.responseText;
}
}
function fnGetSubCategory(){
xmlhttp = GetXmlHttpObject();
var new_cat_id = document.getElementById(“new_cat_id”)。value;
if(xmlhttp == null)
{
alert(“浏览器不支持HTTP请求”);
返回true;
}
var url =“ps.php?cat_id =”+ new_cat_id;
xmlhttp.onreadystatechange = stateChanged;
xmlhttp.open( “GET”,网址,真实);
xmlhttp.send(NULL);
}
function GetXmlHttpObject(){
if(window.XMLHttpRequest){
返回新的XMLHttpRequest();
}
if(window.ActiveXObject){
返回新的ActiveXObject(“Microsoft.XMLHTTP”);
}
return null;
}
< /脚本>
它在所有其他浏览器中都运行良好。
提前致谢。
答案 0 :(得分:0)
尝试使用以下代码创建对象xmlHttp:
function createXmlHttpRequestObject(){
var xmlHttp;
try{
xmlHttp = new XMLHttpRequest();
}
catch (e) {
// If its IE 6 or other version before
var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP');
// We try all versions
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
try {
//Try creating xmlHttp object
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e){
xmlHttp = false;
}
}
}
// If object doesn't exist sends error
if (!xmlHttp){
alert("Error creating XMLHttpRequest object");
}
else{
return xmlHttp;
}
}