Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F392172
fckselection_gecko.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
fckselection_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 ==
*
* Active selection functions. (Gecko specific implementation)
*/
// Get the selection type (like document.select.type in IE).
FCKSelection
.
GetType
=
function
()
{
// if ( ! this._Type )
// {
// By default set the type to "Text".
this
.
_Type
=
'Text'
;
// Check if the actual selection is a Control (IMG, TABLE, HR, etc...).
var
oSel
;
try
{
oSel
=
FCK
.
EditorWindow
.
getSelection
()
;
}
catch
(
e
)
{}
if
(
oSel
&&
oSel
.
rangeCount
==
1
)
{
var
oRange
=
oSel
.
getRangeAt
(
0
)
;
if
(
oRange
.
startContainer
==
oRange
.
endContainer
&&
(
oRange
.
endOffset
-
oRange
.
startOffset
)
==
1
&&
oRange
.
startContainer
.
nodeType
!=
Node
.
TEXT_NODE
)
this
.
_Type
=
'Control'
;
}
// }
return
this
.
_Type
;
}
// Retrieves the selected element (if any), just in the case that a single
// element (object like and image or a table) is selected.
FCKSelection
.
GetSelectedElement
=
function
()
{
if
(
this
.
GetType
()
==
'Control'
)
{
var
oSel
=
FCK
.
EditorWindow
.
getSelection
()
;
return
oSel
.
anchorNode
.
childNodes
[
oSel
.
anchorOffset
]
;
}
return
null
;
}
FCKSelection
.
GetParentElement
=
function
()
{
if
(
this
.
GetType
()
==
'Control'
)
return
FCKSelection
.
GetSelectedElement
().
parentNode
;
else
{
var
oSel
=
FCK
.
EditorWindow
.
getSelection
()
;
if
(
oSel
)
{
var
oNode
=
oSel
.
anchorNode
;
while
(
oNode
&&
oNode
.
nodeType
!=
1
)
oNode
=
oNode
.
parentNode
;
return
oNode
;
}
}
return
null
;
}
FCKSelection
.
SelectNode
=
function
(
element
)
{
// FCK.Focus() ;
var
oRange
=
FCK
.
EditorDocument
.
createRange
()
;
oRange
.
selectNode
(
element
)
;
var
oSel
=
FCK
.
EditorWindow
.
getSelection
()
;
oSel
.
removeAllRanges
()
;
oSel
.
addRange
(
oRange
)
;
}
FCKSelection
.
Collapse
=
function
(
toStart
)
{
var
oSel
=
FCK
.
EditorWindow
.
getSelection
()
;
if
(
toStart
==
null
||
toStart
===
true
)
oSel
.
collapseToStart
()
;
else
oSel
.
collapseToEnd
()
;
}
// The "nodeTagName" parameter must be Upper Case.
FCKSelection
.
HasAncestorNode
=
function
(
nodeTagName
)
{
var
oContainer
=
this
.
GetSelectedElement
()
;
if
(
!
oContainer
&&
FCK
.
EditorWindow
)
{
try
{
oContainer
=
FCK
.
EditorWindow
.
getSelection
().
getRangeAt
(
0
).
startContainer
;
}
catch
(
e
){}
}
while
(
oContainer
)
{
if
(
oContainer
.
nodeType
==
1
&&
oContainer
.
tagName
==
nodeTagName
)
return
true
;
oContainer
=
oContainer
.
parentNode
;
}
return
false
;
}
// The "nodeTagName" parameter must be Upper Case.
FCKSelection
.
MoveToAncestorNode
=
function
(
nodeTagName
)
{
var
oNode
;
var
oContainer
=
this
.
GetSelectedElement
()
;
if
(
!
oContainer
)
oContainer
=
FCK
.
EditorWindow
.
getSelection
().
getRangeAt
(
0
).
startContainer
;
while
(
oContainer
)
{
if
(
oContainer
.
nodeName
==
nodeTagName
)
return
oContainer
;
oContainer
=
oContainer
.
parentNode
;
}
return
null
;
}
FCKSelection
.
Delete
=
function
()
{
// Gets the actual selection.
var
oSel
=
FCK
.
EditorWindow
.
getSelection
()
;
// Deletes the actual selection contents.
for
(
var
i
=
0
;
i
<
oSel
.
rangeCount
;
i
++
)
{
oSel
.
getRangeAt
(
i
).
deleteContents
()
;
}
return
oSel
;
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 22, 20:27 (2 d, 26 s ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23732
Default Alt Text
fckselection_gecko.js (3 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment