1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
var word_rule = RegExp(FCKConfig['WordRule']);
var MoinUnlink = function(){}
MoinUnlink.prototype = new FCKNamedCommand('Unlink');
MoinUnlink.prototype.Execute = function()
{
/*
// code for selection debugging
if (0)
{
var oStart = FCKSelection.GetStartNode()
var sStart = ""
var oEnd = FCKSelection.GetEndNode()
var sEnd = "";
var sSame = (oStart==oEnd) ? "Same:" : "different";
while (oStart)
{
sStart += oStart.nodeName + ">";
oStart = oStart.parentNode;
}
while (oEnd)
{
sEnd += oEnd.nodeName + ">";
oEnd = oEnd.parentNode;
}
alert(//FCKSelection.GetParentElement().nodeName+':'+
sSame +
sStart + '|||' + sEnd + ":" +
//FCKSelection.GetStartOffset() + ':' +
//FCKSelection.GetEndOffset() + ':' +
"Collapsed:" + FCKSelection.IsCollapsed() + ':' +
"Type:" + FCKSelection.GetType());
return
}
*/
if(FCKSelection.GetType()=='Control')
{
FCK.ExecuteNamedCommand('Unlink');
}
else //if (FCK.GetNamedCommandState("Unlink")==FCK_TRISTATE_ON)
{
if (FCKSelection.IsCollapsed())
{
FCKSelection.SelectNode(FCKSelection.MoveToAncestorNode('A'));
}
var sText = FCKSelection.GetText();
FCK.ExecuteNamedCommand('Unlink');
FCKSelection.Collapse();
if (word_rule.test(sText))
{
FCK.InsertHtml('<span style="background-color:#ffff11">!</span>');
}
}
}
//MoinUnlink.prototype.GetState = function(){return FCK_TRISTATE_OFF}
FCKCommands.RegisterCommand('Unlink', new MoinUnlink());
|