1 | /*
|
---|
2 | Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
|
---|
3 | For licensing, see LICENSE.html or http://ckeditor.com/license
|
---|
4 | */
|
---|
5 |
|
---|
6 | CKEDITOR.plugins.add( 'popup' );
|
---|
7 |
|
---|
8 | CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
|
---|
9 | {
|
---|
10 | /**
|
---|
11 | * Opens Browser in a popup. The "width" and "height" parameters accept
|
---|
12 | * numbers (pixels) or percent (of screen size) values.
|
---|
13 | * @param {String} url The url of the external file browser.
|
---|
14 | * @param {String} width Popup window width.
|
---|
15 | * @param {String} height Popup window height.
|
---|
16 | * @param {String} options Popup window features.
|
---|
17 | */
|
---|
18 | popup : function( url, width, height, options )
|
---|
19 | {
|
---|
20 | width = width || '80%';
|
---|
21 | height = height || '70%';
|
---|
22 |
|
---|
23 | if ( typeof width == 'string' && width.length > 1 && width.substr( width.length - 1, 1 ) == '%' )
|
---|
24 | width = parseInt( window.screen.width * parseInt( width, 10 ) / 100, 10 );
|
---|
25 |
|
---|
26 | if ( typeof height == 'string' && height.length > 1 && height.substr( height.length - 1, 1 ) == '%' )
|
---|
27 | height = parseInt( window.screen.height * parseInt( height, 10 ) / 100, 10 );
|
---|
28 |
|
---|
29 | if ( width < 640 )
|
---|
30 | width = 640;
|
---|
31 |
|
---|
32 | if ( height < 420 )
|
---|
33 | height = 420;
|
---|
34 |
|
---|
35 | var top = parseInt( ( window.screen.height - height ) / 2, 10 ),
|
---|
36 | left = parseInt( ( window.screen.width - width ) / 2, 10 );
|
---|
37 |
|
---|
38 | options = ( options || 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes' ) +
|
---|
39 | ',width=' + width +
|
---|
40 | ',height=' + height +
|
---|
41 | ',top=' + top +
|
---|
42 | ',left=' + left;
|
---|
43 |
|
---|
44 | var popupWindow = window.open( '', null, options, true );
|
---|
45 |
|
---|
46 | // Blocked by a popup blocker.
|
---|
47 | if ( !popupWindow )
|
---|
48 | return false;
|
---|
49 |
|
---|
50 | try
|
---|
51 | {
|
---|
52 | popupWindow.moveTo( left, top );
|
---|
53 | popupWindow.resizeTo( width, height );
|
---|
54 | popupWindow.focus();
|
---|
55 | popupWindow.location.href = url;
|
---|
56 | }
|
---|
57 | catch ( e )
|
---|
58 | {
|
---|
59 | popupWindow = window.open( url, null, options, true );
|
---|
60 | }
|
---|
61 |
|
---|
62 | return true;
|
---|
63 | }
|
---|
64 | });
|
---|