sto cercando di adattare uno script trovato in rete:
codice:
(function($) {
  $.fn.catch404 = function(options) {
    options = $.extend({
      optionOne: 'defaultValue',
      optionTwo: { partOne: 'defaultValue' }
    }, options);

  $(this).each(function() 
  { 
    /* begin catch 404 - contribs: Addy Osmani, James Padolsey, Christian Heillman, Soh Tanaka*/
	var container = $('#target');
    container.attr('tabIndex','-1');
  
  $(this).click(function()
  {
    var trigger = $(this);
    var url = trigger.attr('href');
	
    if(!trigger.hasClass('loaded'))
	{
      trigger.append('<span></span>');
      trigger.addClass('loaded');
      var msg = trigger.find('span::last');
    } else {
      var msg = trigger.find('span::last');
    }
	
    performAjaxCall(url,msg,container);
    return false;
  });
  
  function donav(url)
  {
    document.location.href = url;
  }
  
  function performAjaxCall(url,msg,container)
  {
    if(url.match('^http')){
      msg.removeClass('error');
      msg.html(' (checking...)');
      $.getJSON("http://query.yahooapis.com/v1/public/yql?"+
                "q=select%20*%20from%20html%20where%20url%3D%22"+
                encodeURIComponent(url)+
                "%22&format=xml'&callback=?",
        function(data){
          if(data.results[0]){
            var data = filterData(data.results[0]);
			donav(url);
          } else {
            msg.html(' (error!)');
            msg.addClass('error');	
			fourPop();
          }
        }
      );
    } else {
      $.ajax({
        url: url,
        timeout:5000,
        success: function(data){
          msg.html(' (ready.)');
        },
        error: function(req,error){
          msg.html(' (404!)');
          msg.addClass('error');
		  fourPop();
          if(error === 'error'){error = req.statusText;}
          var errormsg = 'Encountered comms error: '+error;
        },
        beforeSend: function(data){
          msg.removeClass('error');
          msg.html(' (checking...)');
        }
      });
    }
  }
  function filterData(data){
    // filter all the nasties out
    // no body tags
    data = data.replace(/<?\/body[^>]*>/g,'');
    // no linebreaks
    data = data.replace(/[\r|\n]+/g,'');
    // no comments
    data = data.replace(/<--[\S\s]*?-->/g,'');
    // no noscript blocks
    data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g,'');
    // no script blocks
    data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g,'');
    // no self closing scripts
    data = data.replace(/<script.*\/>/,'');
    // [... add as needed ...]
    return data;
  }
  
  function fourPop(){
		
				
		var popWidth = 500; 
		var popID = '404message';
 
		$('#' + popID).fadeIn().css({ 'width': Number( popWidth ) }).prepend('[img]images/close_pop.png[/img]');
		
		var popMargTop = ($('#' + popID).height() + 80) / 2;
		var popMargLeft = ($('#' + popID).width() + 80) / 2;
		
		//Apply Margin to Popup
		$('#' + popID).css({ 
			'margin-top' : -popMargTop,
			'margin-left' : -popMargLeft
		});
		
		//Fade in Background
		$('body').append('<div id="fade"></div>'); 
		$('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); 
		return false;
	};
	//Close Popups and Fade Layer
	$('a.close, #fade').live('click', function() { 
	  	$('#fade , .popup_block').fadeOut(function() {
			$('#fade, a.close').remove();  
	}); //fade them both out
		
		return false;
	});
    });
  }
})(jQuery);
e questa è la semplice parte html
da quello che però ho potuto notare il controllo viene eseguito sul codice 404, nel mio caso però la pagina esiste ma per alcuni motivi a volte risulta irraggiungibile, quindi vorrei fare in modo che se dopo un tot di tempo la pagina non viene caricata, dovrà essere caricata un'altra pagina