当前位置:  开发笔记 > 编程语言 > 正文

跨浏览器AJAX函数动态加载HTML

如何解决《跨浏览器AJAX函数动态加载HTML》经验,为你挑选了3个好方法。

我正在寻找一个动态请求HTML页面的AJAX函数.我已经找到了以下内容:

function ajaxinclude(url) 
{
   var page_request = false

   if (window.XMLHttpRequest) // if Mozilla, Safari etc
      page_request = new XMLHttpRequest()
   else if (window.ActiveXObject) // if IE
   { 

     try {
       page_request = new ActiveXObject("Msxml2.XMLHTTP")
     } 
     catch (e){
       try{
         page_request = new ActiveXObject("Microsoft.XMLHTTP")
       }
       catch (e){}
     }
   }
   else
     return false

   page_request.open('GET', url, false) //get page synchronously 
   page_request.send(null)
   return page_request.responseText;
 }

它在Firefox和Chrome中运行良好,但在以下行的IE中失败:

page_request.open('GET', url, false)

是否有更好的可用功能,保证完全跨浏览器兼容?

编辑:感谢所有伟大的建议......最后,我决定不在这里重新发明轮子.而我忘记提到的一件事是,我还需要它间隔更新......虽然我已经弄清楚了所以我不认为它有所作为.但后来我在原型中找到了很棒的Ajax.PeriodicUpdater()方法并且大大改变了我的想法.我只是从一个50 LOC解决方案到大约4行:)



1> Adam..:

我不得不同意,不要重新发明轮子,或者在这种情况下,AJAX.

JQuery和Prototype在让您不必处理跨浏览器支持以及大大简化Javascript类型编程方面做得非常出色.我首先陷入JQuery,所以我偏向于它,从我看到的库有点小(阅读:在浏览器中更快),但我认为Prototype已经存在更长时间并且有大量的插件和示例在那里.Ruby on Rails默认情况下也使用Prototype.有趣的是,两者中的代码看起来非常相似,并且几乎不需要重写来更改库.

JQuery教程 < - 直到AJAX部分


有一个完全有效的情况,一个人不能/不想使用框架,没有我的投票,但它的价值考虑到移动网站和phonegap应用程序,人们可能只想要的东西.
如果我能在没有跟踪堆栈溢出的情况下这样做的话,我会给Purefan一百万票.Jquery确实很适合跨浏览器的东西,但有时最好打包光并在较低级别工作.

2> Luca Matteis..:

或者,如果您不需要整个框架,可以尝试这样做:http://www.hunlock.com/blogs/The_Ultimate_Ajax_Object



3> tvanfosson..:

我建议使用任何一个不同的javascript框架来实现这个功能,而不是重新发明它.有jQuery,Prototype/Scriptaculous,MooTools,Dojo等等.所有这些都为您正在做的事情提供跨浏览器支持.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有