Avatar billede moejensen Nybegynder
16. oktober 2004 - 21:31 Der er 13 kommentarer og
1 løsning

problemer med link i DOM editor

Jeg sidder og leger lidt med FCKeditoren. Når man laver et link skal man først skrive sin tekst i editoren og markere den, hvor efter man man trykke på link ikonet, for at skrive url'en. Det markerede bliver efterfølgende til linket.

Jeg vil gerne prøve at gøre det muliigt at man kan indtaste den tekst der bliver til linket i den dialogbox der kommer op, men jeg kan simpelthen ikke se hvordan den læser/skriver den del der står mellem <a href=""> og </a>.

Jeg håber der er en af jer der kender den og kan hjælpe mig.

metoden der skriver linket til editorområdet ser således ud:

function ok()
        {
            var sUrl = txtURL.value ;
            var sTarget = ( bCanTarget && sTargets.length > 0 ) ? selTarget.value : sDefaultTarget ;
           
            if (sUrl == "")
                dialogArguments.decCommand( DECMD_UNLINK ) ;
            else
            {
                dialogArguments.decCommand( DECMD_HYPERLINK, OLECMDEXECOPT_DONTPROMPTUSER, "java script:void(0);/*fckeditortemplink*/" ) ;
                for (i = 0 ; i < oDOM.links.length ; i++)
                {
                    if ( oDOM.links[i].href == "java script:void(0);/*fckeditortemplink*/" )
                    {
                        oDOM.links[i].href = sUrl ;
                       
                        if ( txtTitle.value == "" )
                            oDOM.links[i].removeAttribute("title",0) ;
                        else
                            oDOM.links[i].title  = txtTitle.value ;
                           
                        if ( sTarget == null || sTarget == "" )
                            oDOM.links[i].removeAttribute("target",0) ;
                        else
                            oDOM.links[i].target = sTarget ;
                    }
                }
            }
       
            cancel() ;
        }
Avatar billede olebole Juniormester
16. oktober 2004 - 23:48 #1
<ole>

Mon ikke, du kan sætte det med:

                for (i = 0 ; i < oDOM.links.length ; i++)
                {
                    if ( oDOM.links[i].href == "java script:void(0);/*fckeditortemplink*/" )
                    {                for (i = 0 ; i < oDOM.links.length ; i++)
                {
                    if ( oDOM.links[i].href == "java script:void(0);/*fckeditortemplink*/" )
                    {
                        oDOM.links[i].href = sUrl ;
                        oDOM.links[i].text = "Link nr. " + i;
                       
                        if ( txtTitle.value == "" )
                            oDOM.links[i].removeAttribute("title",0) ;
                        else
                            oDOM.links[i].title  = txtTitle.value ;
                           
                        if ( sTarget == null || sTarget == "" )
                            oDOM.links[i].removeAttribute("target",0) ;
                        else
                            oDOM.links[i].target = sTarget ;
                    }
                }

                       
                        if ( txtTitle.value == "" )
                            oDOM.links[i].removeAttribute("title",0) ;
                        else
                            oDOM.links[i].title  = txtTitle.value ;
                           
                        if ( sTarget == null || sTarget == "" )
                            oDOM.links[i].removeAttribute("target",0) ;
                        else
                            oDOM.links[i].target = sTarget ;
                    }
                }


/mvh
</bole>
Avatar billede olebole Juniormester
16. oktober 2004 - 23:52 #2
Ehhhh .... jeg ved ikke lige, hvad der skete med den copy/paste  :D

for (i = 0 ; i < oDOM.links.length ; i++)
{
    if ( oDOM.links[i].href == "java script:void(0);/*fckeditortemplink*/" )
    {
        oDOM.links[i].href = sUrl ;
        oDOM.links[i].text = "Link nr. " + i ;
       
        if ( txtTitle.value == "" )
            oDOM.links[i].removeAttribute("title",0) ;
        else
            oDOM.links[i].title  = txtTitle.value ;
           
        if ( sTarget == null || sTarget == "" )
            oDOM.links[i].removeAttribute("target",0) ;
        else
            oDOM.links[i].target = sTarget ;
    }
}
Avatar billede moejensen Nybegynder
17. oktober 2004 - 00:06 #3
Øv bøv, desværre ikke.

Dit forsøg giver ikke noget resultat, med mindre jeg markere teksten først, og så får jeg følgende resyltat:

<a title="sdfg" href="/Files/test.doc" target="_parent" text="Link nr. 0">cvg</a>

hvor text kommer ind som en parameter i a :-(

Jeg vil gerne paste dig hele dialogboxens kode, men jeg ved ikke om det ændre på noget.
Avatar billede olebole Juniormester
17. oktober 2004 - 00:10 #4
Nej, jeg gider ikke sidde og rode i koden  :)
Prøv med innerText, innerHTML eller nodeValue ... i stedet for text
Avatar billede moejensen Nybegynder
17. oktober 2004 - 00:18 #5
Både innerText og innerHTML virker faktisk delvist. Hvis der ikke er markeret nogen tekst så får jeg intet resultat, men hvis jeg markere teksten først, så retter den teksten til det der står i innerText.
Avatar billede olebole Juniormester
17. oktober 2004 - 01:33 #6
Yups ... det lyder rimeligt. Skal du kunne andet, skal du længere ned i programmet og rode  :)
Avatar billede moejensen Nybegynder
17. oktober 2004 - 01:54 #7
Det var godt nok det der var min plan, hvor meget længere ned vil du tro jeg skal?
Avatar billede moejensen Nybegynder
17. oktober 2004 - 01:59 #8
grunden til at jeg gerne vil have det er at det er filer jeg sætter ind, så det kunne være godt hvis jeg kunne få filnavnet på.
Avatar billede olebole Juniormester
17. oktober 2004 - 02:00 #9
Jamen, så må du til at skrive editor-komponenten om  :)
Avatar billede moejensen Nybegynder
17. oktober 2004 - 10:38 #10
Puha, det lyder jo ikke rart. Tror du der er nogen måde jeg kan få den tekst ud der er markeret, for så kan jeg jo skrive indset metoden om, så jeg selv generere koden og indsætter den i editoren. Så hopper jeg bare uden om den dom lik generator der er i editoren i forvenen.

Eksempelvis indsættes en flash på denne måde:
function ok()
{
    if ( flashSource == null )
        window.returnValue = getImageHtml() ;
    else
    {
        //updateFlash( flashSource ) ;
        window.returnValue = getImageHtml() ;
    }
    window.close() ;
}

// Get the IMG tag.
function getImageHtml()
{
    return  '<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" src=\"' + txtURL.value + '\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width=\"' + txtWidth.value + '\" height=\"' + txtHeight.value + '\" VIEWASTEXT>' + '<param name=movie value=\"' + txtURL.value + '\">' + '<param name=quality value=high>'
            + '<embed id=\"imgPreview\" src=\"' + txtURL.value + '\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\" width=\"' + txtWidth.value + '\" height=\"' + txtHeight.value + '\">'
            + '</embed>' ;
            + '</object>' ;
}

Jeg håber det er til at følge hvad jeg mener :-)
Avatar billede olebole Juniormester
17. oktober 2004 - 19:57 #11
Jame, de koder, du viser, er ikke der, hvor editoren sætter noget ind - det sker andre steder.
Du skal ned og skrive komponenten om, hvor den indsætter kode. Du kan sagtens hive teksten ud, men det kræver som sagt, du skriver komponenten om  :)
Avatar billede moejensen Nybegynder
18. oktober 2004 - 08:55 #12
Jeg er muligvis ved at have en løsning, så jeg arbejder lige lidt videre, så skal jeg nok skrive hvis det lykkedes.
Avatar billede moejensen Nybegynder
18. oktober 2004 - 20:58 #13
fik selv løst problemet ved lidt omskrivningen af metoden og ved brug af: window.returnValue

men jeg vil godt give dig 30 point for din hjælp, så du må gerne lave et svar
Avatar billede moejensen Nybegynder
26. november 2004 - 14:52 #14
spg lukkes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester