扩展jQuery跨域加载js文件

 众所周知ajax中的同源策略,不能够向其他主机发送ajax请求,在jQuery中提供了一个getScript()方法,可以获取远程js文件,并执行,但这一功能也具有同源性.由于前段时间工作需要访问其他服务器上的一个js文件中的数据,对该函数进行了一个扩展,希望能对使用jQuery的朋友有所帮助,代码如下://扩展jQuery加载跨域名js脚本
 jQuery.extend(
  {
   /**
    * @brief: 加载跨域名js脚本
    * @param: 脚本URL
    * @param: 加载完毕回调函数
    */
   getScriptEx : function (jsurl, fCallback, fError)
   {
    var BROWSER_IE = window.navigator.userAgent.indexOf("MSIE") != -1;
    var SCRIPT_TIMEOUT = 20000;
       
       if (typeof(fCallback) != "function") fCallback = new Function();
       if (typeof(fError) != "function") fError = new Function();

       var oScriptEl, oTimeoutHDL, oHead;
    try
    {
         oScriptEl = document.createElement("script");
         oScriptEl.type      = "text/javascript";
         oScriptEl.language     = "javascript";
         oScriptEl.src       = jsurl + "?" + Math.random();
         oScriptEl.onreadystatechange = doCallback;
       
         if (BROWSER_IE)
      {
             oScriptEl.onload = function()
       {
                this.readyState = "complete";
                 doCallback();
             };
          };
       
          oTimeoutHDL = window.setTimeout(doError, SCRIPT_TIMEOUT);
          document.getElementsByTagName("head")[0].appendChild(oScriptEl);
    
     }
     catch(error)
     {}
   
       function doCallback()
    {
     try
        {
      if (oScriptEl.readyState == "complete" || oScriptEl.readyState == "loaded")
      {
                 oScriptEl.onload = oScriptEl.onreadystatechange = new Function();
                 fCallback();
                 window.clearTimeout(oTimeoutHDL);
                 oScriptEl.parentNode.removeChild(oScriptEl);
             }
     }
     catch(error)
     {}
        };
   
       function doError()
    {
     try
     {
             oScriptEl.parentNode.removeChild(oScriptEl);
     }
     catch(error)
     {}
       };
   }
  }

如何使用不用我讲了吧,慢慢爽吧!

<script type=text/javascript>AjaxAction("/blog/Ajax.Asp?Action=ShowSpecial&LogID=154&ShowType=2");</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值