$.extend({
/**
* 跨域装载JS脚本,获取页面窗口对象,从而获得DOM内容
* @param string url 需要读取的脚本地址
* @param function callback 回调函数,参数为载入后的窗口win对象
* @param string charset 指定字符编码
*/
'crossGetScript':function(url,callback,charset){
if($.isEmptyObject(url) || !$.isFunction(callback)){
return;
}
//初始化返回
if(charset===undefined){
charset = 'UTF-8';
}
var id = 'i_'+new Date().getTime();
//装载url数据
$('',{
'id':id,
'srcdoc':'',
'style':'display:none',
'load':function(){
var win = $(this)[0].contentWindow;
callback(win);
}
}).appendTo('body');
//去除IFRAME
window.setTimeout("$('#"+id+"').remove();",1000);
},
/**
* 跨域装载页面,获取页面的win窗口对象
* @param string url
* @param function callback
* @param string charset
*/
'crossGetHtml':function(url,callback,charset){
if($.isEmptyObject(url) || !$.isFunction(callback)){
return;
}
//初始化返回
if(charset===undefined){
charset = 'UTF-8';
}
var id = 'i_'+new Date().getTime();
//装载url数据
$('',{
'id':id,
'src':url,
'style':'display:none',
'load':function(){
var win = $(this)[0].contentWindow;
callback(win);
}
}).appendTo('body');
//去除IFRAME
window.setTimeout("$('#"+id+"').remove();",1000);
}
});
基本思路就是用iframe装载你需要的页面,然后从页面获取你所需要的任何数据,包括页面或者DOM对象。甚至可以用crossGetScript函数跨域动态加载JS脚本。再在回调函数里面通过操作iframe的window对象,可以获取加载脚本的函数或者变量。