I have this script running, and I'm wondering if I need all of http://code.jquery.com/jquery-latest.min.js
It's 70 kb, and I would love to be able to strip it down.
$('a.inframe').click(function() {
var e=$(this);
if (!e.data('state')) { //if开发者_JAVA百科 state is undefined
e.data('state','open'); //set the state to 'open'
// Extract the frame height from the rel attribute
var frameHeight=e.attr('rel');
var pat1 = new RegExp('height:');
pat1.test(frameHeight);
frameHeight=RegExp.rightContext;
var pat2 = new RegExp('px');
pat2.test(frameHeight);
frameHeight = RegExp.leftContext;
if ( !frameHeight || (Math.ceil(frameHeight)!=Math.floor(frameHeight)) ) {
//if it's null or not an integer
frameHeight = '550'; //default frame height, in case none is specified
};
frameHeight += 'px';
frameWidth = '100%';
// Insert the iframe just after the link
e.after('<iframe style="width:'+frameWidth+'; height:'+frameHeight+'; border:solid 0px #ccc; margin-bottom:1em; background:#fff;" src=' + e.attr('href') + ' frameborder="0" ></iframe>');
var iframe=e.next('iframe');
// Insert the "loading..." text
iframe.before(' <small class="quiet"> hold on a sec...</small>')
iframe.load(function(){ //once content was loaded
iframe.slideDown(500); //slide it down
iframe.prev('small').remove(); //remove the 'loading...'
});
e.attr('title','Hide'); //set the link title to 'Hide'
}
else if(e.data('state')=='closed') { //if state is 'closed'
e.data('state', 'open');
e.next('iframe').slideDown(500);
e.attr('title','Hide');
}
else if(e.data('state')=='open') { //if state is 'open'
e.data('state', 'closed');
e.next('iframe').slideUp(500);
e.attr('title','Show');
}
return false;
});
});
精彩评论