将上一篇文章中的代码封装一下,基于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 举报,一经查实,本站将立刻删除。