У меня есть функция ниже, но когда я пытаюсь запустить ее в firefox, я получаю сообщение об ошибке «xmlhttp.Open не является функцией», этого не происходит в google chrome, однако я пропустил преобразование кода из ActiveXObject? Параметр PAGE установлен и работает для ActiveXObject в Internet Explorer.
function broker(PAGE,PARAMARR,STARTPARAM)
{
var postdata=getPostData();
var ua=navigator.userAgent;
var msie=ua.indexOf ('MSIE ');
//var xmlhttp =null;
if (msie!=-1)
{
xmlhttp = new ActiveXObject('MSXML2.XMLHTTP');
xmlhttp.Open('POST',PAGE,false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
}
else {
xmlhttp = new XMLHttpRequest();
xmlhttp.Open('POST',PAGE,false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
}
var paramno,param;
for (paramno=STARTPARAM;paramno<PARAMARR.length;paramno++)
{
param=PARAMARR[paramno];if (param==void 0) param='';
if (param===true) param=-1;
if (param===false) param=0;
postdata=postdata+'&Parameter='+encodeURIComponent(param);
}
xmlhttp.setRequestHeader('Content-Length', postdata.length);
xmlhttp.send(postdata);
var response=new String(xmlhttp.responseText);
var brkmsg=getMessage(response);
return brkmsg;
}
Chrome: Netscape mozilla / 5.0 (windows nt 6.1; wow64) applewebkit / 537.36 (khtml, как gecko) chrome / 47.0.2526.106 safari / 537.36
Firefox: Netscape mozilla / 5.0 (windows NT 6.1; wow64; rv: 43.0) gecko / 20100101 firefox / 43.0
IE11: Netscape mozilla / 5.0 (windows nt 6.1; wow64; trident / 7.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; медиацентр pc 6.0; .net4.0c; .net4.0e; infopath.3; rv: 11.0) как gecko)
IE8 (режим совместимости): Mozilla / 4.0 (совместимый; MSIE 7.0; Windows NT 5.2; WOW64; Trident / 4.0; .NET CLR 3.0.4506.2152; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET4.0C ; .NET4.0E; InfoPath.2)