[JS] Toevoegen link in innerHTML

Pagina: 1
Acties:

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Ik heb een div waarin men via een editor content kunnen opmaken.

Via die editor is het ook mogelijk ok links aan te maken.

Nu deed ik dat eerst via exec.command maar er blijkt meer vraag te zijn dus ben ik gaan kijken hoe ik dat kon oplossen (zodat je ook targets aan kon geven etc.)

Vanuit de editor open ik nu een pop upje waarin men de link kan aangeven en het target gaat allemaal prima.

Maar nu wil dat ze gewoon het woord kunnen selecteren in de div die ze willen laten linken , en dat DIE wordt meegenomen in de tag.

Ik heb het volgende geknutzeld.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        function insert_link(tag_output) 
        {    
            
            
            var EditLayer = document.all.dediv;
            EditLayer.setActive();
            var TempTR = EditLayer.document.selection.createRange();
            var pad = 'http://www.testpad.com';
            alert(TempTR);
            var tag_output = '<a href="' + pad + '" >"' + TempTR + '"</a>"';
            alert(tag_output);
    
            TempTR.pasteHTML(tag_output);
}


Ik dacht dat TemTR gewoon de waarde van mijn selectie was. echter als ik tag_output ga alerten krijg ik <tag>[oject]></tag> terug en wordt ook zo geplaatst.

Hoe zou ik dit anders op kunnen lossen zonder het woord wat men wil , in het opo up scherm in te laten vullen

Dat vinden ze onhandig B)

Ja man


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

doet eens een alert(TempTR.text) of alert(TempTR.htmlText) B)

Intentionally left blank


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
hehe thnx (8>

Ja man


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Maar nu probleem 2 8)

Met text linkjes gaat dat prima, maar nu wat als ik een plaatje wil aten linken.
Het plaatje is dat al in mn DIV aanwezig deze wil ik dan selecteren en een link aanbrengen.

Ik krijg nu undefined terug :(

Ja man


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

TempTR.innerHTML werkt niet :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Ook undifined, ik ga nu proberen aan creatlink een target mee te geven :)

Ja man


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

als je plaatje al in je div aanwezig is moet je m toch opnieuw definieren in js zodat ie weet dat het plaatje ook daadwerkelijk bestaat.

js kan niet zomaar dingen vinden uit je css :)

disjfa - disj·fa (meneer)
disjfa.nl


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Dat probeer ik ook te doen :)

Ik wil eigenlijk het pad van het plaatje + de attributen (align="left") door te sturen en die inclusief de URL terug te zetten.

Eigenlijk dus opnieuw de tags maken en over de oude heen zetten

[ Voor 4% gewijzigd door BierPul op 23-01-2003 13:43 ]

Ja man


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Met dank aan dit topic [rml][ JS] - CreateLink met target="_blank" ??? help !![/rml]


Is dit eruit gekomen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    function insert_link(pop_link, doel) 
        {
            var EditLayer = document.all.dediv;
            var TempTR = EditLayer.document.selection.createRange();
            
            LinkHTML = "<a href='" + pop_link + "'";
            LinkHTML += " target='" + doel + "'";
            
            SelType = EditLayer.document.selection.type.toLowerCase();
                if(SelType == "text")   {
                    if(pop_link)
                        LinkHTML += ">" + pop_link + "</a>";
                    else if(TempTR.htmlText)
                        LinkHTML += ">" + TempTR.htmlText + "</a>";
                    else
                        LinkHTML += ">" + pop_link + "</a>";
                    TempTR.pasteHTML(LinkHTML);
                    } else if(SelType == "control") {
                    var InnerElem = TempTR.item(0);
                    InnerElem.outerHTML = LinkHTML + ">" + InnerElem.outerHTML + "</a>";
                }
        }


Hetgeen een werkend resultaat geeft :)

Ja man


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

niet vergetend dat t wel erg ie only is :)

disjfa - disj·fa (meneer)
disjfa.nl


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
disjfa schreef op 23 January 2003 @ 15:10:
niet vergetend dat t wel erg ie only is :)
Is niet erg voor dit project B)

Ja man

Pagina: 1