首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移植问题-将Internet Explorer移植到所有其他设备

移植问题-将Internet Explorer移植到所有其他设备
EN

Stack Overflow用户
提问于 2012-02-19 02:38:18
回答 3查看 113关注 0票数 2

我有一些在Windows7计算机上开发的代码,可以毫无问题地运行任何Windows7同行。我试着在我的Mac上运行它,程序只是停留在加载页面上。

该程序显示bing地图视图并加载一些内容,以便获得特定卫星的位置。现在所有的数学和东西都能用了,但我认为问题出在这里:

代码语言:javascript
复制
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);
}

}

那么,有没有办法可以将其更改为在任何浏览器上运行?如果你需要查看完整的代码,我会添加它

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-19 02:39:04

在Mac上没有ActiveX对象。下面这行代码不起作用:

代码语言:javascript
复制
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

您可以使用XMLHttpRequest

代码语言:javascript
复制
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请求。

票数 5
EN

Stack Overflow用户

发布于 2012-02-19 02:41:10

替换

代码语言:javascript
复制
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

使用

代码语言:javascript
复制
xmlhttp = window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();

编辑

正如其他人所说,您可能会发现使用像jQuery这样的东西(这是非常好的)的好处,但您可能还不需要努力调整您现有的代码。如果你写了很好的(标准的) javascript,你会发现浏览器的交叉兼容性问题应该是最小的。

在未来,一定要尽早并经常在其他浏览器中进行测试,以避免此类问题。

票数 1
EN

Stack Overflow用户

发布于 2012-02-19 02:41:55

将特定web应用程序从浏览器特定版本移植到浏览器不可知版本的最好方法是使用像jQuery这样的javascript框架。它旨在将不同浏览器之间出现的粗糙边缘平滑到一个友好+统一的API中。例如,上面的代码可以通过jQuery ajax请求跨多个浏览器完成

代码语言:javascript
复制
$.ajax({
  url: url,
  success: function ()  {
    // Called when the query completes
    statechange();
  }});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9344014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档