mirror of
https://github.com/danog/sass-site.git
synced 2024-12-13 18:07:35 +01:00
126 lines
3.0 KiB
JavaScript
126 lines
3.0 KiB
JavaScript
var defaultURL = 'sass-lang.com'; //<---- CHANGE TO YOUR WEBSITE URL
|
|
|
|
//show loading graphic
|
|
function showLoader(id) {
|
|
$('#' + id + ' .progress').fadeIn('slow');
|
|
}
|
|
|
|
//hide loading graphic
|
|
function hideLoader(id) {
|
|
$('#' + id + ' .progress').fadeOut('slow');
|
|
}
|
|
|
|
//function to check load state of each frame
|
|
function allLoaded(){
|
|
var results = [];
|
|
$('iframe').each(function(){
|
|
if(!$(this).data('loaded')){results.push(false)}
|
|
});
|
|
var result = (results.length > 0) ? false : true;
|
|
return result;
|
|
};
|
|
|
|
function loadPage($frame, url) {
|
|
if ( url.substr(0,7) !== 'http://' && url.substr(0,8) !== 'https://' && url.substr(0, 7) !== 'file://' ) {
|
|
url = 'http://'+url;
|
|
}
|
|
$('iframe').not($frame).each(function(){showLoader($(this).parent().attr('id'));})
|
|
$('iframe').not($frame).data('loaded', false);
|
|
$('iframe').not($frame).attr('src', url);
|
|
}
|
|
|
|
$('.frame').each(function(){showLoader($(this).attr('id'))});
|
|
|
|
|
|
//when document loads
|
|
$(document).ready(function(){
|
|
|
|
loadPage('', defaultURL);
|
|
|
|
//query string
|
|
var qsArray = window.location.href.split('?');
|
|
var qs = qsArray[qsArray.length-1];
|
|
|
|
if(qs != '' && qsArray.length > 1){
|
|
$('#test-url').val(qs);
|
|
loadPage('', qs);
|
|
}
|
|
|
|
//set slidable div width
|
|
$('.responsive-test ul').css('width', function(){
|
|
var width = 0;
|
|
$('.frame').each(function(){width += $(this).outerWidth() + 20});
|
|
return width;
|
|
});
|
|
|
|
//add event handlers for options radio buttons
|
|
$('input[type=radio]').change(function(){
|
|
$frames = $('.responsive-test');
|
|
$inputs = $('input[type=radio]:checked').val();
|
|
|
|
if($inputs == '1'){
|
|
$frames.addClass('width-only');
|
|
} else {
|
|
$frames.removeClass('width-only');
|
|
}
|
|
});
|
|
|
|
//add event handlers for scrollbars checkbox
|
|
$('input[type=checkbox]').change(function(){
|
|
var scrollBarWidth = 15;
|
|
$frames = $('.responsive-test');
|
|
$inputs = $('#scrollbar:checked');
|
|
|
|
if( $inputs.length == 0 ){
|
|
scrollBarWidth = -15;
|
|
}
|
|
|
|
$frames.find('iframe').each(function(i,el) {
|
|
$(el).attr('width', parseInt($(el).attr('width')) + scrollBarWidth);
|
|
});
|
|
});
|
|
|
|
//when the url textbox is used
|
|
$('form').submit(function(){
|
|
loadPage('' , $('#test-url').val());
|
|
return false;
|
|
});
|
|
|
|
//when frame loads
|
|
$('iframe').load(function(){
|
|
|
|
var $this = $(this);
|
|
var url = '';
|
|
var error = false;
|
|
|
|
try{
|
|
url = $this.contents().get(0).location.href;
|
|
} catch(e) {
|
|
error = true;
|
|
if($('#test-url').val() != ''){
|
|
url = $('#test-url').val();
|
|
} else {
|
|
url = defaultURL;
|
|
}
|
|
}
|
|
|
|
//load other pages with the same URL
|
|
if(allLoaded()){
|
|
if(error){
|
|
alert('Browsers prevent navigation from inside iframes across domains.\nPlease use the textbox at the top for external sites.');
|
|
loadPage('', defaultURL);
|
|
}else{
|
|
loadPage($this, url);
|
|
}
|
|
}
|
|
|
|
//when frame loads, hide loader graphic
|
|
else{
|
|
error = false;
|
|
hideLoader($(this).parent().attr('id'));
|
|
$(this).data('loaded',true);
|
|
}
|
|
});
|
|
|
|
});
|