Avatar billede mranders Nybegynder
09. marts 2004 - 18:26 Der er 8 kommentarer og
1 løsning

problemer med iView.document.selection.createRange

jeg har denne funktion

function doLink(url, tekst)
{
iView.focus();
iView.document.selection.createRange().pasteHTML('<a href="' + url + '">' + tekst + '</a>');
}

url og tekst er 2 inputs som kommer fra en form.

mit problem er at man markerer et sted i min iframe, når man så udfører funktionen kommer linket der hvor cursoren er, men når man markerer et sted og så markerer i mine inputs for at udfylde dem, så mister den jo markeringen i iframen, hvordan kan jeg undgå dette?

håber i forstår, ellers kan jeg uploade eksemplet
Avatar billede roenving Novice
09. marts 2004 - 18:43 #1
Selection burde da ikke forsvinde, for den er da kun i iView-vinduet (det er vel en iframe !-)
Avatar billede mranders Nybegynder
09. marts 2004 - 18:53 #2
prøv at se her http://www.cmson.dk/editor2.asp

gå nogle linie ned, tryk på link, og udfyld felterne og klik link, som du kan se kommer teksten i toppen af siden, men markerer du et sted igen og så klikker link igen, så kommer det ved markeringen, altså fjerner den min creatrange, når man markerer felterne.

her er hele koden:


<HTML>
<HEAD>
<TITLE> New Document </TITLE>

</HEAD>

<SCRIPT LANGUAGE="JavaScript">
function Init()
{
iView.document.designMode = 'On';
}

function doLink(url, tekst)
{
iView.focus();
iView.document.selection.createRange().pasteHTML('<a href="' + url + '">' + tekst + '</a>');
}

function doLink2(test){
if(test == 'vis'){
link2.style.visibility="Visible"
link2.style.position="absolute"
link2.style.top="200px"
link2.style.left="200px"
}
else if (test == 'gem'){
link2.style.visibility="hidden"
link2.style.position="absolute"
link2.style.top="200px"
link2.style.left="200px"
iView.focus();
link.navn.value=""
link.url.value=""
}
}

function doLink(url, tekst)
{
iView.focus();
iView.document.selection.createRange().pasteHTML('<a href="' + url + '">' + tekst + '</a>');
}
</SCRIPT>

<style>
table{
visibility:        hidden;
position:        absolute;
top:            200px;
left:            200px;
border:            1 solid #000000;
}
</style>

<BODY onload="Init()" >

<TABLE id="link2" width="250px">
<TR valign="top">
    <TD><b>Lav link</b></TD>
    <TD align="right"><A HREF="#" onclick="doLink2('gem')"><b>Luk</b></A></TD>
</TR>
<TR valign="top">
    <TD>Link navn</TD>
    <TD><input type="Text" id="link" name="navn"></TD>
</TR>
<TR valign="top">
    <TD>Link url</TD>
    <TD><input type="Text" id="link" name="url"></TD>
</TR>
<TR valign="top">
    <TD></TD>
    <TD><input type="button" onClick="doLink(link.navn.value, link.url.value) + doLink2('gem')" value="link"></TD>
</TR>
</TABLE>

<A HREF="#" onclick="doLink2('vis')">Link</A>

<iframe id="iView" style="width: 600px; height:500px"></iframe>

</BODY>
</HTML>
Avatar billede mranders Nybegynder
09. marts 2004 - 18:58 #3
har fjernet så der ikke er 2 doLink
Avatar billede roenving Novice
09. marts 2004 - 19:32 #4
function doLink(url, tekst)
{
iView.focus();
rng.pasteHTML('<a href="' + url + '">' + tekst + '</a>');
}
var rng;
function doLink2(test){
rng = iView.document.selection.createRange();
if(test == 'vis'){
Avatar billede mranders Nybegynder
09. marts 2004 - 19:40 #5
det virker næsten bortset, fra hvis man markerer noget udefor iframen eller ikke markerer noget på siden, så kommer linket udenfor iframen
Avatar billede mranders Nybegynder
09. marts 2004 - 19:43 #6
fik løst det med en iView.focus();, smid et svar, mange tak
Avatar billede mranders Nybegynder
09. marts 2004 - 19:45 #7
nu du er igang kan du fortælle mig hvordan man laver noget markeret tekst til en variabel ?
Avatar billede roenving Novice
09. marts 2004 - 19:51 #8
var nytxt = rng.text;

-- og velbekomme '-)
Avatar billede roenving Novice
09. marts 2004 - 20:09 #9
-- og tak for points ;~}
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