码迷,mamicode.com
首页 > 其他好文 > 详细

跨域加载脚本或页面获取内容

时间:2015-09-16 22:03:34      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:

$.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数据
        $(‘<iframe>‘,{
            ‘id‘:id,
            ‘srcdoc‘:‘<script src="‘+url+‘" charset="‘+charset+‘" ></script>‘,
            ‘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数据
        $(‘<iframe>‘,{
            ‘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对象,可以获取加载脚本的函数或者变量。

跨域加载脚本或页面获取内容

标签:

原文地址:http://my.oschina.net/leeldy/blog/507016

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!