Blame view

mobile/source/ext/ckeditor/_source/plugins/popup/plugin.js 1.85 KB
a1684257   Administrator   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  /*
  Copyright (c) 2003-2011, 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
  		{
  			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;
  	}
  });