Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
panel
/
fckeditor
/
editor
/
dialog
/
fck_link
:
fck_anchor.html
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <!-- * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2009 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 == * * Anchor dialog window. --> <html> <head> <title>Anchor Properties</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta content="noindex, nofollow" name="robots"> <script src="common/fck_dialog_common.js" type="text/javascript"></script> <script type="text/javascript"> var dialog = window.parent ; var oEditor = dialog.InnerDialogLoaded() ; var FCK = oEditor.FCK ; var FCKBrowserInfo = oEditor.FCKBrowserInfo ; var FCKTools = oEditor.FCKTools ; var FCKRegexLib = oEditor.FCKRegexLib ; var oDOM = FCK.EditorDocument ; var oFakeImage = dialog.Selection.GetSelectedElement() ; var oAnchor ; if ( oFakeImage ) { if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckanchor') ) oAnchor = FCK.GetRealElement( oFakeImage ) ; else oFakeImage = null ; } //Search for a real anchor if ( !oFakeImage ) { oAnchor = FCK.Selection.MoveToAncestorNode( 'A' ) ; if ( oAnchor ) FCK.Selection.SelectNode( oAnchor ) ; } window.onload = function() { // First of all, translate the dialog box texts oEditor.FCKLanguageManager.TranslatePage(document) ; if ( oAnchor ) GetE('txtName').value = oAnchor.name ; else oAnchor = null ; window.parent.SetOkButton( true ) ; window.parent.SetAutoSize( true ) ; SelectField( 'txtName' ) ; } function Ok() { var sNewName = GetE('txtName').value ; // Remove any illegal character in a name attribute: // A name should start with a letter, but the validator passes anyway. sNewName = sNewName.replace( /[^\w-_\.:]/g, '_' ) ; if ( sNewName.length == 0 ) { // Remove the anchor if the user leaves the name blank if ( oAnchor ) { // Removes the current anchor from the document using the new command FCK.Commands.GetCommand( 'AnchorDelete' ).Execute() ; return true ; } alert( oEditor.FCKLang.DlgAnchorErrorName ) ; return false ; } oEditor.FCKUndo.SaveUndoStep() ; if ( oAnchor ) // Modifying an existent anchor. { ReadjustLinksToAnchor( oAnchor.name, sNewName ); // Buggy explorer, bad bad browser. http://alt-tag.com/blog/archives/2006/02/ie-dom-bugs/ // Instead of just replacing the .name for the existing anchor (in order to preserve the content), we must remove the .name // and assign .name, although it won't appear until it's specially processed in fckxhtml.js // We remove the previous name oAnchor.removeAttribute( 'name' ) ; // Now we set it, but later we must process it specially oAnchor.name = sNewName ; return true ; } // Create a new anchor preserving the current selection var aNewAnchors = oEditor.FCK.CreateLink( '#' ) ; if ( aNewAnchors.length == 0 ) aNewAnchors.push( oEditor.FCK.InsertElement( 'a' ) ) ; else { // Remove the fake href for ( var i = 0 ; i < aNewAnchors.length ; i++ ) aNewAnchors[i].removeAttribute( 'href' ) ; } // More than one anchors may have been created, so interact through all of them (see #220). for ( var i = 0 ; i < aNewAnchors.length ; i++ ) { oAnchor = aNewAnchors[i] ; // Set the name if ( FCKBrowserInfo.IsIE ) { // Setting anchor names directly in IE will trash the HTML code stored // in FCKTempBin after undos. See #2263. var replaceAnchor = oEditor.FCK.EditorDocument.createElement( '<a name="' + FCKTools.HTMLEncode( sNewName ).replace( '"', '"' ) + '">' ) ; oEditor.FCKDomTools.MoveChildren( oAnchor, replaceAnchor ) ; oAnchor.parentNode.replaceChild( replaceAnchor, oAnchor ) ; oAnchor = replaceAnchor ; } else oAnchor.name = sNewName ; // IE does require special processing to show the Anchor's image // Opera doesn't allow to select empty anchors if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera ) { if ( oAnchor.innerHTML != '' ) { if ( FCKBrowserInfo.IsIE ) oAnchor.className += ' FCK__AnchorC' ; } else { // Create a fake image for both IE and Opera var oImg = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Anchor', oAnchor.cloneNode(true) ) ; oImg.setAttribute( '_fckanchor', 'true', 0 ) ; oAnchor.parentNode.insertBefore( oImg, oAnchor ) ; oAnchor.parentNode.removeChild( oAnchor ) ; } } } return true ; } // Checks all the links in the current page pointing to the current name and changes them to the new name function ReadjustLinksToAnchor( sCurrent, sNew ) { var oDoc = FCK.EditorDocument ; var aLinks = oDoc.getElementsByTagName( 'A' ) ; var sReference = '#' + sCurrent ; // The url of the document, so we check absolute and partial references. var sFullReference = oDoc.location.href.replace( /(#.*$)/, '') ; sFullReference += sReference ; var oLink ; var i = aLinks.length - 1 ; while ( i >= 0 && ( oLink = aLinks[i--] ) ) { var sHRef = oLink.getAttribute( '_fcksavedurl' ) ; if ( sHRef == null ) sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; if ( sHRef == sReference || sHRef == sFullReference ) { oLink.href = '#' + sNew ; SetAttribute( oLink, '_fcksavedurl', '#' + sNew ) ; } } } </script> </head> <body style="overflow: hidden"> <table height="100%" width="100%"> <tr> <td align="center"> <table border="0" cellpadding="0" cellspacing="0" width="80%"> <tr> <td> <span fckLang="DlgAnchorName">Anchor Name</span><BR> <input id="txtName" style="WIDTH: 100%" type="text"> </td> </tr> </table> </td> </tr> </table> </body> </html>