fckdialog_gecko.js
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:3k
源码类别:

OA系统

开发平台:

C#

  1. /*
  2.  * FCKeditor - The text editor for internet
  3.  * Copyright (C) 2003-2006 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.  * "Support Open Source software. What about a donation today?"
  12.  * 
  13.  * File Name: fckdialog_gecko.js
  14.  *  Dialog windows operations. (Gecko specific implementations)
  15.  * 
  16.  * File Authors:
  17.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  18.  */
  19. FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow, resizable )
  20. {
  21. var iTop  = (FCKConfig.ScreenHeight - dialogHeight) / 2 ;
  22. var iLeft = (FCKConfig.ScreenWidth  - dialogWidth)  / 2 ;
  23. var sOption  = "location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes" +
  24. ",resizable="  + ( resizable ? 'yes' : 'no' ) +
  25. ",width="  + dialogWidth +
  26. ",height=" + dialogHeight +
  27. ",top="  + iTop +
  28. ",left=" + iLeft ;
  29. if ( !parentWindow )
  30. parentWindow = window ;
  31. FCKFocusManager.Lock() ;
  32. var oWindow = parentWindow.open( '', 'FCKeditorDialog_' + dialogName, sOption, true ) ;
  33. if ( !oWindow )
  34. {
  35. alert( FCKLang.DialogBlocked ) ;
  36. FCKFocusManager.Unlock() ;
  37. return ;
  38. }
  39. oWindow.moveTo( iLeft, iTop ) ;
  40. oWindow.resizeTo( dialogWidth, dialogHeight ) ;
  41. oWindow.focus() ;
  42. oWindow.location.href = pageUrl ;
  43. oWindow.dialogArguments = dialogInfo ;
  44. // On some Gecko browsers (probably over slow connections) the 
  45. // "dialogArguments" are not set to the target window so we must
  46. // put it in the opener window so it can be used by the target one.
  47. parentWindow.FCKLastDialogInfo = dialogInfo ;
  48. this.Window = oWindow ;
  49. // Try/Catch must be used to avoit an error when using a frameset 
  50. // on a different domain: 
  51. // "Permission denied to get property Window.releaseEvents".
  52. try
  53. {
  54. window.top.captureEvents( Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS ) ;
  55. window.top.parent.addEventListener( 'mousedown', this.CheckFocus, true ) ;
  56. window.top.parent.addEventListener( 'mouseup', this.CheckFocus, true ) ;
  57. window.top.parent.addEventListener( 'click', this.CheckFocus, true ) ;
  58. window.top.parent.addEventListener( 'focus', this.CheckFocus, true ) ;
  59. }
  60. catch (e)
  61. {}
  62. }
  63. FCKDialog.CheckFocus = function()
  64. {
  65. // It is strange, but we have to check the FCKDialog existence to avoid a 
  66. // random error: "FCKDialog is not defined".
  67. if ( typeof( FCKDialog ) != "object" )
  68. return false ;
  69. if ( FCKDialog.Window && !FCKDialog.Window.closed )
  70. FCKDialog.Window.focus() ;
  71. else
  72. {
  73. // Try/Catch must be used to avoit an error when using a frameset 
  74. // on a different domain: 
  75. // "Permission denied to get property Window.releaseEvents".
  76. try
  77. {
  78. window.top.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS) ;
  79. window.top.parent.removeEventListener( 'onmousedown', FCKDialog.CheckFocus, true ) ;
  80. window.top.parent.removeEventListener( 'mouseup', FCKDialog.CheckFocus, true ) ;
  81. window.top.parent.removeEventListener( 'click', FCKDialog.CheckFocus, true ) ;
  82. window.top.parent.removeEventListener( 'onfocus', FCKDialog.CheckFocus, true ) ;
  83. }
  84. catch (e)
  85. {}
  86. }
  87. return false ;
  88. }