Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F946538
fcktools_gecko.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
fcktools_gecko.js
View Options
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2007 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Utility functions. (Gecko version).
*/
FCKTools
.
CancelEvent
=
function
(
e
)
{
if
(
e
)
e
.
preventDefault
()
;
}
FCKTools
.
DisableSelection
=
function
(
element
)
{
if
(
FCKBrowserInfo
.
IsGecko
)
element
.
style
.
MozUserSelect
=
'none'
;
// Gecko only.
else
element
.
style
.
userSelect
=
'none'
;
// CSS3 (not supported yet).
}
// Appends a CSS file to a document.
FCKTools
.
_AppendStyleSheet
=
function
(
documentElement
,
cssFileUrl
)
{
var
e
=
documentElement
.
createElement
(
'LINK'
)
;
e
.
rel
=
'stylesheet'
;
e
.
type
=
'text/css'
;
e
.
href
=
cssFileUrl
;
documentElement
.
getElementsByTagName
(
"HEAD"
)[
0
].
appendChild
(
e
)
;
return
e
;
}
// Removes all attributes and values from the element.
FCKTools
.
ClearElementAttributes
=
function
(
element
)
{
// Loop throw all attributes in the element
for
(
var
i
=
0
;
i
<
element
.
attributes
.
length
;
i
++
)
{
// Remove the element by name.
element
.
removeAttribute
(
element
.
attributes
[
i
].
name
,
0
)
;
// 0 : Case Insensitive
}
}
// Returns an Array of strings with all defined in the elements inside another element.
FCKTools
.
GetAllChildrenIds
=
function
(
parentElement
)
{
// Create the array that will hold all Ids.
var
aIds
=
new
Array
()
;
// Define a recursive function that search for the Ids.
var
fGetIds
=
function
(
parent
)
{
for
(
var
i
=
0
;
i
<
parent
.
childNodes
.
length
;
i
++
)
{
var
sId
=
parent
.
childNodes
[
i
].
id
;
// Check if the Id is defined for the element.
if
(
sId
&&
sId
.
length
>
0
)
aIds
[
aIds
.
length
]
=
sId
;
// Recursive call.
fGetIds
(
parent
.
childNodes
[
i
]
)
;
}
}
// Start the recursive calls.
fGetIds
(
parentElement
)
;
return
aIds
;
}
// Replaces a tag with its contents. For example "<span>My <b>tag</b></span>"
// will be replaced with "My <b>tag</b>".
FCKTools
.
RemoveOuterTags
=
function
(
e
)
{
var
oFragment
=
e
.
ownerDocument
.
createDocumentFragment
()
;
for
(
var
i
=
0
;
i
<
e
.
childNodes
.
length
;
i
++
)
oFragment
.
appendChild
(
e
.
childNodes
[
i
].
cloneNode
(
true
)
)
;
e
.
parentNode
.
replaceChild
(
oFragment
,
e
)
;
}
FCKTools
.
CreateXmlObject
=
function
(
object
)
{
switch
(
object
)
{
case
'XmlHttp'
:
return
new
XMLHttpRequest
()
;
case
'DOMDocument'
:
return
document
.
implementation
.
createDocument
(
''
,
''
,
null
)
;
}
return
null
;
}
FCKTools
.
GetScrollPosition
=
function
(
relativeWindow
)
{
return
{
X
:
relativeWindow
.
pageXOffset
,
Y
:
relativeWindow
.
pageYOffset
}
;
}
FCKTools
.
AddEventListener
=
function
(
sourceObject
,
eventName
,
listener
)
{
sourceObject
.
addEventListener
(
eventName
,
listener
,
false
)
;
}
FCKTools
.
RemoveEventListener
=
function
(
sourceObject
,
eventName
,
listener
)
{
sourceObject
.
removeEventListener
(
eventName
,
listener
,
false
)
;
}
// Listeners attached with this function cannot be detached.
FCKTools
.
AddEventListenerEx
=
function
(
sourceObject
,
eventName
,
listener
,
paramsArray
)
{
sourceObject
.
addEventListener
(
eventName
,
function
(
e
)
{
listener
.
apply
(
sourceObject
,
[
e
].
concat
(
paramsArray
||
[]
)
)
;
},
false
)
;
}
// Returns and object with the "Width" and "Height" properties.
FCKTools
.
GetViewPaneSize
=
function
(
win
)
{
return
{
Width
:
win
.
innerWidth
,
Height
:
win
.
innerHeight
}
;
}
FCKTools
.
SaveStyles
=
function
(
element
)
{
var
oSavedStyles
=
new
Object
()
;
if
(
element
.
className
.
length
>
0
)
{
oSavedStyles
.
Class
=
element
.
className
;
element
.
className
=
''
;
}
var
sInlineStyle
=
element
.
getAttribute
(
'style'
)
;
if
(
sInlineStyle
&&
sInlineStyle
.
length
>
0
)
{
oSavedStyles
.
Inline
=
sInlineStyle
;
element
.
setAttribute
(
'style'
,
''
,
0
)
;
// 0 : Case Insensitive
}
return
oSavedStyles
;
}
FCKTools
.
RestoreStyles
=
function
(
element
,
savedStyles
)
{
element
.
className
=
savedStyles
.
Class
||
''
;
if
(
savedStyles
.
Inline
)
element
.
setAttribute
(
'style'
,
savedStyles
.
Inline
,
0
)
;
// 0 : Case Insensitive
else
element
.
removeAttribute
(
'style'
,
0
)
;
}
FCKTools
.
RegisterDollarFunction
=
function
(
targetWindow
)
{
targetWindow
.
$
=
function
(
id
)
{
return
this
.
document
.
getElementById
(
id
)
;
}
;
}
FCKTools
.
AppendElement
=
function
(
target
,
elementName
)
{
return
target
.
appendChild
(
target
.
ownerDocument
.
createElement
(
elementName
)
)
;
}
// Get the coordinates of an element.
// @el : The element to get the position.
// @relativeWindow: The window to which we want the coordinates relative to.
FCKTools
.
GetElementPosition
=
function
(
el
,
relativeWindow
)
{
// Initializes the Coordinates object that will be returned by the function.
var
c
=
{
X
:
0
,
Y
:
0
}
;
var
oWindow
=
relativeWindow
||
window
;
var
oOwnerWindow
=
FCKTools
.
GetElementWindow
(
el
)
;
// Loop throw the offset chain.
while
(
el
)
{
var
sPosition
=
oOwnerWindow
.
getComputedStyle
(
el
,
''
).
position
;
// Check for non "static" elements.
// 'FCKConfig.FloatingPanelsZIndex' -- Submenus are under a positioned IFRAME.
if
(
sPosition
&&
sPosition
!=
'static'
&&
el
.
style
.
zIndex
!=
FCKConfig
.
FloatingPanelsZIndex
)
break
;
c
.
X
+=
el
.
offsetLeft
-
el
.
scrollLeft
;
c
.
Y
+=
el
.
offsetTop
-
el
.
scrollTop
;
if
(
el
.
offsetParent
)
el
=
el
.
offsetParent
;
else
{
if
(
oOwnerWindow
!=
oWindow
)
{
el
=
oOwnerWindow
.
frameElement
;
if
(
el
)
oOwnerWindow
=
FCKTools
.
GetElementWindow
(
el
)
;
}
else
{
c
.
X
+=
el
.
scrollLeft
;
c
.
Y
+=
el
.
scrollTop
;
break
;
}
}
}
// Return the Coordinates object
return
c
;
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 07:27 (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26159
Default Alt Text
fcktools_gecko.js (6 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment