Avatar billede dustbunny Nybegynder
29. juni 2004 - 09:51 Der er 8 kommentarer og
1 løsning

createrange problem

Jeg tilføjer via et popup vindue et línk til en fil i min wysiwyg editor.
Dertil anvender jeg følgende kode...

function addPic(cat) {
  var selected = 0;
  for (var i=0; i<document.picarchive.elements.length; i++) {
    var e = document.picarchive.elements[i];
    if ((e.name == "msguid") && (e.checked == true)) {
      imagePath = '<a href="files/upload/'+cat+'/'+e.value+'" target="_blank">'+e.value+'</a>';
      oSelFileName = e.value;
      selected = 1;
    }
  }

  if (selected == 0) {
    alert("Der er ikke markeret noget!");
    } else {
    opener.frames.message.focus();
    var oSel = opener.frames.message.document.selection.createRange();

    oSelTxt = oSel.htmlText;

        if (!oSelTxt) {
        oSelTxt = oSelFileName;
    }

    oSel.pasteHTML("<a href='files/upload/"+cat+"/"+oSelFileName+"' target='_blank'>" + oSelTxt + "</a>");
    this.window.close();
    opener.frames.message.focus();       
  }
}

Problemet er bare når jeg trykker return for linieskifte og vil placere et link har createrange markeret følgende (-"");

"
<P>&nbsp;</P>"

Altså et linieskifte + <P>&nbsp;</P>

Det betyder så at oSelTxt aldrig vil være !oSelTxt og at den laver et link på et mellemrum...
Har prøvet at bruge replace, men kan ikke få &nbsp; væk...hjælp?

Håber i fatter bare lidt af det jeg har skrevet :)
Avatar billede roenving Novice
29. juni 2004 - 18:44 #1
Hvilken værdi har oSelTxt da så ?-)

-- hvis du prøver at alerte den, må den vel have en værdi, du kan opsnappe !-)

-- har ikke selv virkelig undersøgt det, men har dog tidligere set det som et problem, som jeg dog ikke fordybede mig i !o]
Avatar billede dustbunny Nybegynder
29. juni 2004 - 21:55 #2
oSelTxt har værdien

"linieskifte"
<P>&nbsp;</P>

Jeg har prøvet at replace den med en nul værdi men uden held...kan ikke fange &nbsp;...
Avatar billede dustbunny Nybegynder
29. juni 2004 - 22:01 #3
Altså det jeg vil have den til at gøre er hvis der ikke er markeret noget tekst, så skal den alligevel lave et link til filen, med filnavnet som tekst.
Avatar billede roenving Novice
29. juni 2004 - 22:16 #4
if (!oSelTxt || oSelTxt.toLowerCase().indexOf("<p>&nbsp;</p>")==1) {
  oSelTxt = oSelFileName;
}

Måske danner den linjeskiftet med \r\n, så skal der stå 2 i ovenstående !-)
Avatar billede dustbunny Nybegynder
29. juni 2004 - 22:46 #5
Hmm..det virker med 2...
Hvad er det lige den gør der?
Tager den linie 2 eller bare tegn 2?
Smid et svar
Avatar billede dustbunny Nybegynder
29. juni 2004 - 22:47 #6
btw. mange mange mange tak...har bøvlet med det i lang tid nu ! :)
Avatar billede roenving Novice
29. juni 2004 - 22:54 #7
I javascript er alle ting 0-baserede, så den første plads er nummer 0 !-)

Så hvis den virker med 2 betyder det, at den skal finde starten af paragraf- (afsnits-) tagget på den 3. position i oSelTxt ...

-- og velbekomme '-)
Avatar billede dustbunny Nybegynder
29. juni 2004 - 22:56 #8
mkay så blev jeg det klogere...
Avatar billede roenving Novice
29. juni 2004 - 22:58 #9
Tak for point ;~}
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