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 '';
});
...