mirror of
https://github.com/moparisthebest/mailiverse
synced 2024-11-19 07:25:05 -05:00
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
|
/*
|
|||
|
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
|
|||
|
For licensing, see LICENSE.html or http://ckeditor.com/license
|
|||
|
*/
|
|||
|
|
|||
|
CKEDITOR.plugins.add( 'popup' );
|
|||
|
|
|||
|
CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
|
|||
|
{
|
|||
|
/**
|
|||
|
* Opens Browser in a popup. The "width" and "height" parameters accept
|
|||
|
* numbers (pixels) or percent (of screen size) values.
|
|||
|
* @param {String} url The url of the external file browser.
|
|||
|
* @param {String} width Popup window width.
|
|||
|
* @param {String} height Popup window height.
|
|||
|
* @param {String} options Popup window features.
|
|||
|
*/
|
|||
|
popup : function( url, width, height, options )
|
|||
|
{
|
|||
|
width = width || '80%';
|
|||
|
height = height || '70%';
|
|||
|
|
|||
|
if ( typeof width == 'string' && width.length > 1 && width.substr( width.length - 1, 1 ) == '%' )
|
|||
|
width = parseInt( window.screen.width * parseInt( width, 10 ) / 100, 10 );
|
|||
|
|
|||
|
if ( typeof height == 'string' && height.length > 1 && height.substr( height.length - 1, 1 ) == '%' )
|
|||
|
height = parseInt( window.screen.height * parseInt( height, 10 ) / 100, 10 );
|
|||
|
|
|||
|
if ( width < 640 )
|
|||
|
width = 640;
|
|||
|
|
|||
|
if ( height < 420 )
|
|||
|
height = 420;
|
|||
|
|
|||
|
var top = parseInt( ( window.screen.height - height ) / 2, 10 ),
|
|||
|
left = parseInt( ( window.screen.width - width ) / 2, 10 );
|
|||
|
|
|||
|
options = ( options || 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes' ) +
|
|||
|
',width=' + width +
|
|||
|
',height=' + height +
|
|||
|
',top=' + top +
|
|||
|
',left=' + left;
|
|||
|
|
|||
|
var popupWindow = window.open( '', null, options, true );
|
|||
|
|
|||
|
// Blocked by a popup blocker.
|
|||
|
if ( !popupWindow )
|
|||
|
return false;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// Chrome is problematic with moveTo/resizeTo, but it's not really needed here (#8855).
|
|||
|
var ua = navigator.userAgent.toLowerCase();
|
|||
|
if ( ua.indexOf( ' chrome/' ) == -1 )
|
|||
|
{
|
|||
|
popupWindow.moveTo( left, top );
|
|||
|
popupWindow.resizeTo( width, height );
|
|||
|
}
|
|||
|
popupWindow.focus();
|
|||
|
popupWindow.location.href = url;
|
|||
|
}
|
|||
|
catch ( e )
|
|||
|
{
|
|||
|
popupWindow = window.open( url, null, options, true );
|
|||
|
}
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
});
|