Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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

1 Answer 1

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.