fckdialog_gecko.js
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:3k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. /*
  2.  * FCKeditor - The text editor for internet
  3.  * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  4.  * 
  5.  * Licensed under the terms of the GNU Lesser General Public License:
  6.  *  http://www.opensource.org/licenses/lgpl-license.php
  7.  * 
  8.  * For further information visit:
  9.  *  http://www.fckeditor.net/
  10.  * 
  11.  * File Name: fckdialog_gecko.js
  12.  *  Dialog windows operations. (Gecko specific implementations)
  13.  * 
  14.  * File Authors:
  15.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  16.  */
  17. FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow, resizable )
  18. {
  19. var iTop  = (screen.height - dialogHeight) / 2 ;
  20. var iLeft = (screen.width  - dialogWidth)  / 2 ;
  21. var sOption  = "location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes" +
  22. ",resizable="  + ( resizable ? 'yes' : 'no' ) +
  23. ",width="  + dialogWidth +
  24. ",height=" + dialogHeight +
  25. ",top="  + iTop +
  26. ",left=" + iLeft ;
  27. if ( !parentWindow )
  28. parentWindow = window ;
  29. var oWindow = parentWindow.open( '', 'FCKeditorDialog_' + dialogName, sOption, true ) ;
  30. oWindow.moveTo( iLeft, iTop ) ;
  31. oWindow.resizeTo( dialogWidth, dialogHeight ) ;
  32. oWindow.focus() ;
  33. oWindow.location.href = pageUrl ;
  34. oWindow.dialogArguments = dialogInfo ;
  35. // On some Gecko browsers (probably over slow connections) the 
  36. // "dialogArguments" are not set to the target window so we must
  37. // put it in the opener window so it can be used by the target one.
  38. parentWindow.FCKLastDialogInfo = dialogInfo ;
  39. this.Window = oWindow ;
  40. // Try/Catch must be used to avoit an error when using a frameset 
  41. // on a different domain: 
  42. // "Permission denied to get property Window.releaseEvents".
  43. try
  44. {
  45. window.top.captureEvents( Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS ) ;
  46. window.top.parent.addEventListener( 'mousedown', this.CheckFocus, true ) ;
  47. window.top.parent.addEventListener( 'mouseup', this.CheckFocus, true ) ;
  48. window.top.parent.addEventListener( 'click', this.CheckFocus, true ) ;
  49. window.top.parent.addEventListener( 'focus', this.CheckFocus, true ) ;
  50. }
  51. catch (e)
  52. {}
  53. }
  54. FCKDialog.CheckFocus = function()
  55. {
  56. // It is strange, but we have to check the FCKDialog existence to avoid a 
  57. // random error: "FCKDialog is not defined".
  58. if ( typeof( FCKDialog ) != "object" )
  59. return ;
  60. if ( FCKDialog.Window && !FCKDialog.Window.closed )
  61. {
  62. FCKDialog.Window.focus() ;
  63. return false ;
  64. }
  65. else
  66. {
  67. // Try/Catch must be used to avoit an error when using a frameset 
  68. // on a different domain: 
  69. // "Permission denied to get property Window.releaseEvents".
  70. try
  71. {
  72. window.top.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) ;
  73. window.top.parent.removeEventListener( 'onmousedown', FCKDialog.CheckFocus, true ) ;
  74. window.top.parent.removeEventListener( 'mouseup', FCKDialog.CheckFocus, true ) ;
  75. window.top.parent.removeEventListener( 'click', FCKDialog.CheckFocus, true ) ;
  76. window.top.parent.removeEventListener( 'onfocus', FCKDialog.CheckFocus, true ) ;
  77. }
  78. catch (e)
  79. {}
  80. }
  81. }