WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The iframe in thickbox media library is not big enough to display my custom tab. I tried to add "width=900&height=600" at the end of the link that pointing to the library, but no luck. How can I modify the inframe size?

share|improve this question
up vote 2 down vote accepted

Yep, it's curious that adding the extra parameters doesn't works...

I know that Adminimize does that.
enter image description here

Looking at its code, that's what it does:

wp_deregister_script( 'media-upload' );
wp_enqueue_script(
    'media-upload', 
    WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/tb_window.js', 
    array( 'thickbox' )
);

And this is the tb_window.js file:

// send html to the post editor
function send_to_editor(h) {
    if ( typeof tinyMCE != 'undefined' && ( ed = tinyMCE.activeEditor ) && !ed.isHidden() ) {
        ed.focus();
        if (tinymce.isIE)
            ed.selection.moveToBookmark(tinymce.EditorManager.activeEditor.windowManager.bookmark);

        if ( h.indexOf('[caption') != -1 )
            h = ed.plugins.wpeditimage._do_shcode(h);

        ed.execCommand('mceInsertContent', false, h);
    } else
        edInsertContent(edCanvas, h);

    tb_remove();
}

/**
 * new tb_window of media-uplader
 */
jQuery(function($) {
    tb_position = function() {
        var tbWindow = $('#TB_window');
        var width = $(window).width();
        var H = $(window).height();
        var W = ( 1720 < width ) ? 1720 : width;

        if ( tbWindow.size() ) {
            tbWindow.width( W - 50 ).height( H - 45 );
            $('#TB_iframeContent').width( W - 50 ).height( H - 75 );
            tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
            if ( typeof document.body.style.maxWidth != 'undefined' )
                tbWindow.css({'top':'20px','margin-top':'0'});
            $('#TB_title').css({'background-color':'#fff','color':'#cfcfcf'});
        };

        return $('a.thickbox').each( function() {
            var href = $(this).attr('href');
            if ( ! href ) return;
            href = href.replace(/&width=[0-9]+/g, '');
            href = href.replace(/&height=[0-9]+/g, '');
            $(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 ) );
        });
    };

    jQuery('a.thickbox').click(function(){
        if ( typeof tinyMCE != 'undefined' &&  tinyMCE.activeEditor ) {
            tinyMCE.get('content').focus();
            tinyMCE.activeEditor.windowManager.bookmark = tinyMCE.activeEditor.selection.getBookmark('simple');
        }
    });

    $(window).resize( function() { tb_position() } );
});
share|improve this answer
    
thanks for the solution! – Jenny Jun 24 '12 at 11:34

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.