disco-attempt-6

by Andrea Ercolino

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/yepnope/1.5.4/yepnope.min.js"></script>

JavaScript

$(function() {
    
    $.proxyGet('http://disco-tools.eu/disco2_portal/terms.php', function(data) {
        
        $.ajaxSetup({
            beforeSend: useProxyWhenNeeded()
        });
        
        convert_relative_urls_to_absolute();
        var remote_scripts = remove_scripts();
        $('body').append(data);
        remote_scripts.shift();  // ignore jQuery
        yepnope({load: remote_scripts});
        remove_noise();
        
        //---
        
        function useProxyWhenNeeded() {
            var reqno = 0;
            return function( jqXHR, settings ) {
                var url = settings.url;
                console.log('Request ' + (++reqno) + ': ' + settings.type + ' ' + url + ' .');
                if (url.indexOf('ajax/ajaxCalls.php') == 0) {
                    url = 'http://disco-tools.eu/disco2_portal/' + url;
                }
                var needs_proxy = url.indexOf('http://disco-tools.eu/disco2_portal/ajax/ajaxCalls.php') == 0;
                if (needs_proxy) {
                    console.log('Proxying ' + url + ' .');
                    //debugger;
                    $.proxyGet(url, settings.success, $.extend(my_proxy, { 
                        filter: function(data) {
                            return data ? JSON.parse(data) : null;
                        }
                    }));
                    return false;
                }
            }
        }
        
        function remove_noise() {
            $('.mainNavi, .subNavi, #SpalteMitte, #SpalteRechts, .searchWrapper, .footer, .bannerWrapper, .contentHeader').remove();
        }
        
        function remove_scripts() {
            var remote_scripts = [];
            data = data.replace(/<script\b[^>]*><\/script>|<script\b[^>]*\/>/g, function(all) {
                var url = all.match(/\bsrc[^=]*=[^"]*"([^"]+)"/i)[1];
                if (url) {
                    remote_scripts.push(url);
                }
                return '';
            });
  ...