fckdialog_gecko.js
上传用户:ah_jiwei
上传日期:2022-07-24
资源大小:54044k
文件大小:3k
源码类别:

数据库编程

开发平台:

Visual C++

  1. /*
  2.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  * Copyright (C) 2003-2007 Frederico Caldeira Knabben
  4.  *
  5.  * == BEGIN LICENSE ==
  6.  *
  7.  * Licensed under the terms of any of the following licenses at your
  8.  * choice:
  9.  *
  10.  *  - GNU General Public License Version 2 or later (the "GPL")
  11.  *    http://www.gnu.org/licenses/gpl.html
  12.  *
  13.  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14.  *    http://www.gnu.org/licenses/lgpl.html
  15.  *
  16.  *  - Mozilla Public License Version 1.1 or later (the "MPL")
  17.  *    http://www.mozilla.org/MPL/MPL-1.1.html
  18.  *
  19.  * == END LICENSE ==
  20.  *
  21.  * Dialog windows operations. (Gecko specific implementations)
  22.  */
  23. FCKDialog.Show = function( dialogInfo, dialogName, pageUrl, dialogWidth, dialogHeight, parentWindow, resizable )
  24. {
  25. var iTop  = (FCKConfig.ScreenHeight - dialogHeight) / 2 ;
  26. var iLeft = (FCKConfig.ScreenWidth  - dialogWidth)  / 2 ;
  27. var sOption  = "location=no,menubar=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,alwaysRaised=yes" +
  28. ",resizable="  + ( resizable ? 'yes' : 'no' ) +
  29. ",width="  + dialogWidth +
  30. ",height=" + dialogHeight +
  31. ",top="  + iTop +
  32. ",left=" + iLeft ;
  33. if ( !parentWindow )
  34. parentWindow = window ;
  35. FCKFocusManager.Lock() ;
  36. var oWindow = parentWindow.open( '', 'FCKeditorDialog_' + dialogName, sOption, true ) ;
  37. if ( !oWindow )
  38. {
  39. alert( FCKLang.DialogBlocked ) ;
  40. FCKFocusManager.Unlock() ;
  41. return ;
  42. }
  43. oWindow.moveTo( iLeft, iTop ) ;
  44. oWindow.resizeTo( dialogWidth, dialogHeight ) ;
  45. oWindow.focus() ;
  46. oWindow.location.href = pageUrl ;
  47. oWindow.dialogArguments = dialogInfo ;
  48. // On some Gecko browsers (probably over slow connections) the
  49. // "dialogArguments" are not set to the target window so we must
  50. // put it in the opener window so it can be used by the target one.
  51. parentWindow.FCKLastDialogInfo = dialogInfo ;
  52. this.Window = oWindow ;
  53. // Try/Catch must be used to avoid an error when using a frameset
  54. // on a different domain:
  55. // "Permission denied to get property Window.releaseEvents".
  56. try
  57. {
  58. window.top.parent.addEventListener( 'mousedown', this.CheckFocus, true ) ;
  59. window.top.parent.addEventListener( 'mouseup', this.CheckFocus, true ) ;
  60. window.top.parent.addEventListener( 'click', this.CheckFocus, true ) ;
  61. window.top.parent.addEventListener( 'focus', this.CheckFocus, true ) ;
  62. }
  63. catch (e)
  64. {}
  65. }
  66. FCKDialog.CheckFocus = function()
  67. {
  68. // It is strange, but we have to check the FCKDialog existence to avoid a
  69. // random error: "FCKDialog is not defined".
  70. if ( typeof( FCKDialog ) != "object" )
  71. return false ;
  72. if ( FCKDialog.Window && !FCKDialog.Window.closed )
  73. FCKDialog.Window.focus() ;
  74. else
  75. {
  76. // Try/Catch must be used to avoid an error when using a frameset
  77. // on a different domain:
  78. // "Permission denied to get property Window.releaseEvents".
  79. try
  80. {
  81. window.top.parent.removeEventListener( 'onmousedown', FCKDialog.CheckFocus, true ) ;
  82. window.top.parent.removeEventListener( 'mouseup', FCKDialog.CheckFocus, true ) ;
  83. window.top.parent.removeEventListener( 'click', FCKDialog.CheckFocus, true ) ;
  84. window.top.parent.removeEventListener( 'onfocus', FCKDialog.CheckFocus, true ) ;
  85. }
  86. catch (e)
  87. {}
  88. }
  89. return false ;
  90. }