微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery用iframe来解决跨域的简单示例2

感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
上一篇文章中的代码封装一下,基于jQuery。

用法代码如下:

/**
 * 用iframe来解决跨域
 *
 * @param 
 * @arrange (编程之家) jb51.cc
 **/
// xs的意思是cross site
$.xsget({
  url: http://127.0.0.1/server.html,callback: function (data) {
    alert(data);
  }
});
代码代码如下:

/**
 * 用iframe来解决跨域
 *
 * @param 
 * @arrange (编程之家) jb51.cc
 **/
(function ($) {
  $.extend({
    xsget: function (options) {
      $.extend(options,$.xsget.defaults);
      var iframe = document.createElement(iframe),same_domain = false;
      iframe.style.display = none;
      document.body.appendChild(iframe);
      // 当iframe加载完之后触发的函数
      function iframe_load() {
        if (same_domain) {
          // 调用回调函数
          if (typeof options.callback === function) {
            options.callback(iframe.contentwindow.name);
          }
          // 关闭iframe的窗口
          iframe.contentwindow.close();
          // 移除iframe
          document.body.removeChild(iframe);
        } else {
          same_domain = true;
          iframe.contentwindow.location = options.proxyUrl;
        }
      }
      // 在IE下要用attachEvent来添加iframe的onload事件
      if (iframe.attachEvent) {
        iframe.attachEvent(onload,function () {
          iframe_load();
        });
      }
      else {
        iframe.onload = iframe_load;
      }
      iframe.src = options.url;
    }
  });
  $.extend($.xsget,{
    defaults: {
      // 认的空白页面,在网站的根目录下
      proxyUrl: /empty.html
    }
  });
})(jQuery);

原文地址:https://www.jb51.cc/jquery/527460.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐