我有一些在Windows7计算机上开发的代码,可以毫无问题地运行任何Windows7同行。我试着在我的Mac上运行它,程序只是停留在加载页面上。
该程序显示bing地图视图并加载一些内容,以便获得特定卫星的位置。现在所有的数学和东西都能用了,但我认为问题出在这里:
function getOrbitalElements()
{
TLE_Line1="";
TLE_Line2="";
pgTXT = "";
xmlhttp = null;
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange = stateChange;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
}那么,有没有办法可以将其更改为在任何浏览器上运行?如果你需要查看完整的代码,我会添加它
发布于 2012-02-19 02:39:04
在Mac上没有ActiveX对象。下面这行代码不起作用:
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");您可以使用XMLHttpRequest
var xmlhttp = null;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 8 and older
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp != null) {
...
}但是,如果您正在寻求最佳的跨浏览器支持,我建议您使用javascript框架(如jQuery )来执行AJAX请求。
发布于 2012-02-19 02:41:10
替换
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");使用
xmlhttp = window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();编辑
正如其他人所说,您可能会发现使用像jQuery这样的东西(这是非常好的)的好处,但您可能还不需要努力调整您现有的代码。如果你写了很好的(标准的) javascript,你会发现浏览器的交叉兼容性问题应该是最小的。
在未来,一定要尽早并经常在其他浏览器中进行测试,以避免此类问题。
发布于 2012-02-19 02:41:55
将特定web应用程序从浏览器特定版本移植到浏览器不可知版本的最好方法是使用像jQuery这样的javascript框架。它旨在将不同浏览器之间出现的粗糙边缘平滑到一个友好+统一的API中。例如,上面的代码可以通过jQuery ajax请求跨多个浏览器完成
$.ajax({
url: url,
success: function () {
// Called when the query completes
statechange();
}});https://stackoverflow.com/questions/9344014
复制相似问题