jQuery用iframe来解决跨域的解决办法(2)
内容摘要
这篇文章主要为大家详细介绍了jQuery用iframe来解决跨域的简单示例(2),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记。将上一篇文章中的代
对此感兴趣的朋友,看看idc笔记做的技术笔记。将上一篇文章中的代
文章正文
这篇文章主要为大家详细介绍了jQuery用iframe来解决跨域的简单示例(2),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记。将上一篇文章中的代码封装一下,基于jQuery。用法: 代码如下:
/**
* 用iframe来解决跨域
*
* @param
* @arrange (www.idcnote.com)
**/
// xs的意思是cross site
$.xsget({
url: "http://127.0.0.1/server.html",
callback: function (data) {
alert(data);
}
});
源代码: 代码如下:
/**
* 用iframe来解决跨域
*
* @param
* @arrange (www.idcnote.com)
**/
(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);
注:关于jQuery用iframe来解决跨域的简单示例(2)的内容就先介绍到这里,更多相关文章的可以留意
代码注释