Avatar billede Slettet bruger
01. marts 2003 - 19:21 Der er 18 kommentarer og
1 løsning

Popuplink i online editor

Hej...

Jeg sidder og laver en online editor (indbygget iframe i IE).

Koden for at lave et link ser ud som følger:
----------------------------------
    function createRef(link) {
    var tr = frames.myEditor.document.selection.createRange()
    tr.execCommand("CreateLink",false, link)
    tr.select()
    frames.myEditor.focus()
    tr.execCommand("Underline")
    tr.select()
    frames.myEditor.focus()
  }
----------------------------------

Ok - jeg har så lavet en række "quick-links" i stil med:
<a href="java script:createRef('default.asp?pageid=2')">Personale</a>

Mit problem kommer imidlertid ved en række popups - som den ikke umiddelbart vil æde koden til. Koden er som følger:

<a href="java script:popUp('default.asp?pageid=<%=pageid%>','Popup',600,500);">Klik her</a>


Jeg ønsker altså at de to kan smeltes sammen på en eller anden måde så jeg også kan lave "quicklinks" til popup-vinduerne.

Er der nogen der kan hjælpe (og i øvrigt forstår hvad jeg snakker om :-)
Avatar billede mortrr Praktikant
01. marts 2003 - 19:52 #1
Desværre - fatter den ikke.
Hvad er det den ikke vil æde? Eller hvorfor?

(Din kode til at lave et link laver nu kun en understregning)

- Morten
Avatar billede Slettet bruger
01. marts 2003 - 19:53 #2
Nej - det er fordi det drejer sig om den indbyggede editor i IE - der slås til med  frames.myEditor.document.designMode = "On"

Hvis ikke du lige kender den er det vist for besværligt at forklare :-(
Avatar billede mortrr Praktikant
01. marts 2003 - 19:54 #3
Kender den så udemærket. Har selv lavet en vi sælger.

- Morten
Avatar billede Slettet bruger
01. marts 2003 - 19:57 #4
ok... Med mit quicklink laver jeg nemt et link til en side på websitet (eks. siden "personale") med linket

<a href="java script:createRef('default.asp?pageid=2')">Personale</a>

Det indsætter linket i editor-vinduet.

Problemet er så hvor linket ikke er i stil med "noget.asp" men altså er en java-popup:
<a href="java script:popUp('default.asp?pageid=<%=pageid%>','Popup',600,500);">Klik her</a>
Avatar billede mortrr Praktikant
01. marts 2003 - 19:58 #5
Sorry - det var mig der kun så din execcommand("underline")
Avatar billede mortrr Praktikant
01. marts 2003 - 20:04 #6
Hvis man lige ser bort fra <%=pageid%>, så er det eneste problem du kan komme ud for, at citationstegnene giver lidt brok.
Men det er "bare" at holde tungen lige i munden, og bruge escaping (fx \'), eller erstatte dem med noget andet indtil man sætter linket, hvis man ikke kan gennemskue det (fx bruge ¤ for ", og så erstatte til sidst med ").
Jeg har brugt javascript links uden problemer, så det er muligt (selv om den anbefalede er at sætte et onclick event på linket).

- Morten
Avatar billede Slettet bruger
01. marts 2003 - 20:06 #7
hmm... jeg ved bare at hvis man prøver med at sætte det direkte ind som:

<a href="java script:createRef('java script:popUp('default.asp?pageid=<%=pageid%>','Popup',600,500);')">Personale</a>

ja - så virker det (underligt nok) ikke... Men hvordan det lige skal formateres ved jeg så ikke...
Avatar billede mortrr Praktikant
01. marts 2003 - 20:08 #8
Brug:

<a href="java script:createRef('java script:popUp(\'default.asp?pageid=<%=pageid%>\',\'Popup\',600,500);')">Personale</a>

- Morten
Avatar billede Slettet bruger
01. marts 2003 - 20:15 #9
Virker fint! Super!
Avatar billede Slettet bruger
02. marts 2003 - 23:49 #10
Det er i øvrigt ikke lykkedes mig at finde / lave en skifte-funktion mellem HTML og wysiwyg - eller rettere - det lader til at den således automatisk laver lokale stier om til globale - i stil med:

images/noget.gif

->

http://www.noget.dk/images/noget.gif

Har du en løsning på det problem?
Avatar billede mortrr Praktikant
03. marts 2003 - 00:19 #11
Internt i "editoren" står alle stier som globale stier, så man har desværre ikke andet valg end selv at lave dem om.
Til gengæld er det rimeligt enkelt.
Lav en replace på "http://"+document.domain til ingenting, så får du relative stier i forhold til roden af dit site.

- Morten
Avatar billede Slettet bruger
03. marts 2003 - 10:38 #12
Altså sådan:

finalhtml = replace(formhtml,"http://"+document.domain," ")

?

(synes nemlig ikk rigtigt den vil æde den!)
Avatar billede mortrr Praktikant
03. marts 2003 - 11:00 #13
finalhtml = replace(formhtml,"http://"+document.domain,"")
(uden mellemrum til sidst)
Men det er altså i klienten.
Avatar billede Slettet bruger
03. marts 2003 - 11:02 #14
Hmm... Ved ikke om det er det du mener med klienten?! Men

    formhtml =  request.form("EditorValue")
    finalhtml = replace(formhtml,"http://"+document.domain,"")
    RS("HTML") = finalhtml

virker i hvert fald ikke...

(PS: skal nok smide et par point din vej som tak...)
Avatar billede Slettet bruger
03. marts 2003 - 11:14 #15
ah... du mener med javascript - kunne selvfølgelig bare angive stien den skal skifte ud...

altså...

"http://www.noget.dk" - > ""

Tak for hjælpen
Avatar billede mortrr Praktikant
03. marts 2003 - 11:15 #16
document.domain eksisterer kun i klienten - IE, så enten skal du bruge replace idet du lægger html-en over i "EditorValue" eller også skal du have en hidden hvor du lægger document.domain over i.
Avatar billede mortrr Praktikant
03. marts 2003 - 11:16 #17
Lad være at hard-code servernavnet. Det skulle jo gerne virke selv om man bruger noget.dk eller ip.nummer. Og hvad nu hvis det skal bruges på en anden server.
Avatar billede Slettet bruger
03. marts 2003 - 11:24 #18
Det kan der selvfølgelig være noget om...

Jeg bruger den her kode til at skifte ml. HTML og wysiwyg:

function setMode(bMode)
    {
    var sTmp;
      isHTMLMode = bMode;
      if (isHTMLMode){sTmp=frames.myEditor.document.body.innerHTML;frames.myEditor.document.body.innerText=sTmp;}
    else {sTmp=frames.myEditor.document.body.innerText;frames.myEditor.document.body.innerHTML=sTmp;}
    frames.myEditor.focus()
    }


Det er så dér du vil smide din replace ind?!
Avatar billede mortrr Praktikant
03. marts 2003 - 11:37 #19
Ja - blandt andet. Også der hvor du poster indholdet via EditorValue.

Jeg ville nu bruge en textarea til at redigere html-kilden.
Har haft en uheldig episode med det andet (kode der blev ændret).
Det giver selvfølgeligt lidt med at skjule/vise "myEditor" og textarea, men når det først virker, så er den en del sikrere.
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