Avatar billede vels Nybegynder
19. januar 2004 - 22:51 Der er 24 kommentarer og
1 løsning

javascript åben en form for windows

Hej

Jeg har set på dating chatten så kan man trykket på et smily face ved siden af send knappen også kommer der en "form for window" frem med nogle billeder man så kan trykke på så de bliver indsat i tekstfeltet....

Hvordan laver man sådan at når man trykker på et billeder kommer der et "windows" frem, det er jo ikke et rigtig popup windows... nogle forslag?
Avatar billede grunken Nybegynder
19. januar 2004 - 23:15 #1
sådan noget ligende ?

<html>
<head>
<script type=text/javascript>
function smilEmil(){
elm = document.getElementById('smiley')
elm.style.display = (elm.style.display=="none")?"inline":"none";
}

function indsaet(smil){
document.forms.frm.tekst.value += smil
smilEmil();
}
</script>
</head>
</body>

<form name="frm">
<textarea name="tekst"></textarea>
</form>
<br/>
<a href="java script:void(0)" onclick="smilEmil();">Indsæt Smiley</a><br>
<div id="smiley" style="display:none;border:1px solid #000;position:absolute;">
Her kan du så smide en masse grafik ind eks.<br/>
<a href="java script:void(0)" onclick="indsaet(':-)')">:-)</a>&nbsp;
<a href="java script:void(0)" onclick="indsaet(':-(')">:-(</a>&nbsp;
<a href="java script:void(0)" onclick="indsaet(':-|')">:-|</a>&nbsp;
<a href="java script:void(0)" onclick="indsaet(':o)')">:o)</a>&nbsp;
</div>
</body>
</html>

Lidt svært når man ikke har set dating.dk's version :o)
Avatar billede thesurfer Nybegynder
19. januar 2004 - 23:20 #2
mon ikke at det skal være?: opener.document.frm.tekst.value += smi;

Jeg går ud fra at det er en popup..? hvis ikke, skal der ikke stå opener..
Avatar billede thesurfer Nybegynder
19. januar 2004 - 23:21 #3
opener.document.frm.tekst.value += smil;

document.FORMNAVN er "hurtigere" end document.forms...
Avatar billede grunken Nybegynder
19. januar 2004 - 23:22 #4
øh?
Avatar billede grunken Nybegynder
19. januar 2004 - 23:22 #5
hvis du nu lige testede det surfer :-)
Avatar billede thesurfer Nybegynder
19. januar 2004 - 23:23 #6
:)
Hvis du f.eks. bruger docuemnt.forms['formtest'], skal den først finde alle formene, og derefter lede efter formen der hedder "formtest"..
Hvis du bruger document.formtest, har du allerede fat i formen..
Avatar billede thesurfer Nybegynder
19. januar 2004 - 23:25 #7
Jeg er ikke i tvivl om at det virker.. der er mange ting der virker, men ikke optimalt, eller også ikke helt "lovligt".. browseren er tit lige glad.. f.eks. Internet Explorer.. den er lige glad med så mange ting.. :)
Avatar billede vels Nybegynder
19. januar 2004 - 23:28 #8
grunken jA skU!!!

Der er lige en ting... de behøves ik at lukke efter man har indsat smily... gerne en luk knappe istedet for :)
Avatar billede grunken Nybegynder
19. januar 2004 - 23:31 #9
er helt enig i at ie er ligeglad :-) med meget....

meeen
1. opener er bestemt ikke nødvendigt ;-)
2.
Vi kan udemærket blive enige om at det er hurtigere at skrive document.formnavn.noget
end
document.forms.formnavn.noget

bare en gammel vane :-)
Avatar billede vels Nybegynder
19. januar 2004 - 23:38 #10
lige et lille spørgsmål... kan man lave sådan hvis nu man har skrevet noget i tekst feltet og man lige vil have en smily i midten af ens tekst... så kan man bare placere markøren også klik på smily så kommer der en der hvor markøren er midt i teksten i stedet for i bunden af teksten?
Avatar billede thesurfer Nybegynder
19. januar 2004 - 23:38 #11
hehe.. det er godt at vi er enige :)
Jeg skrev jo:
"Jeg går ud fra at det er en popup..? hvis ikke, skal der ikke stå opener.."

Jeg regnede med at de der smileys dukkes frem i en popup, der bare indeholder smiley.. :)
Avatar billede vels Nybegynder
19. januar 2004 - 23:40 #12
har selv fikset det der med den ik skal lukke og en luk kanppe... men det andet ved jeg ik lige hvordan man fikser
Avatar billede thesurfer Nybegynder
19. januar 2004 - 23:42 #13
Der skal man vist bruge noget CreateTextRange, eller hvad det nu hedder.. jeg tror at grunken har et eksempel..
Jeg ved ikke hvordan det bruges..
Avatar billede vels Nybegynder
19. januar 2004 - 23:45 #14
oki venter lige og ser om grunken giver lyd fra sig :)
Avatar billede grunken Nybegynder
19. januar 2004 - 23:47 #15
hmm, er ved at være træt af de eksperten mails, men prøver bare lige igen så :-)
Avatar billede grunken Nybegynder
20. januar 2004 - 00:09 #16
her så :-)

<html>
<head>
<script type=text/javascript>

var harFokus

function smilEmil(){
elm = document.getElementById('smiley')
elm.style.display = (elm.style.display=="none")?"block":"none";
}

function indsaet(smil){
  if (harFokus) {
    rng = document.selection.createRange();
    rng.text = smil;
  }
}


function efter(){
document.frm.tekst.focus();
}

</script>

<style type="text/css">
  #luk
    {
    display:block;
    text-align:right;
      margin:0px;
    border-bottom:1px solid #000;
    background-color:#6777B3;
    }

  #smiley
    {
    border:1px solid #000;
    position:absolute;
    height:200px;width:380px;
    }
</style>
</head>
</body>

<form name="frm">
<textarea name="tekst" onfocus="harFokus = true;" onblur="harFokus = false;"></textarea>
</form>
<br/>

<a href="java script:void(0)" onclick="smilEmil();">Indsæt Smiley</a><br>

<div id="smiley" style="display:none;">
<div id="luk"><a href="java script:void(0)" onclick="smilEmil()" title="Luk">X</a></div>
  Her kan du så smide en masse grafik ind eks.
<a href="java script:void(0)" onmousedown="indsaet(':-)')" onmouseup="efter();">:-)</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet(':-(')" onmouseup="efter();">:-(</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet(':-|')" onmouseup="efter();">:-|</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet(':o)')" onmouseup="efter();">:o)</a>&nbsp;
</div>
</body>
</html>
Avatar billede grunken Nybegynder
20. januar 2004 - 00:23 #17
og forresten, bare for at det fungerer i alle browsere :-)

ie er den eneste der understøtter createRange :-)

så lav lige :-)

<script type=text/javascript>

var harFokus
var ie = (document.fileSize)?true:false

function smilEmil(){
elm = document.getElementById('smiley')
elm.style.display = (elm.style.display=="none")?"block":"none";
}

function indsaet(smil){
if(ie){
  if (harFokus) {
  rng = document.selection.createRange();
  rng.text = smil;
  }
}else
  document.frm.tekst.value += smil
}


function efter(){
document.frm.tekst.focus();
}

</script>

i stedet
Avatar billede vels Nybegynder
20. januar 2004 - 08:51 #18
Heg igen.... den der du siger der burde virker i alle browser, insætter smily i bunden af teksten når jeg prøver i IE, den anden version virker fino nok, men det skal helst ögså virker med andre end IE
Avatar billede grunken Nybegynder
20. januar 2004 - 14:56 #19
ændrer :
var ie = (document.fileSize)?true:false

til

var ie = (document.selection.createRange)?true:false

så burde vi være sikret :)
Avatar billede vels Nybegynder
04. februar 2004 - 22:19 #20
skal vi ikke ha et svar?
Avatar billede vels Nybegynder
04. februar 2004 - 22:19 #21
Mr gurken...
Avatar billede vels Nybegynder
04. februar 2004 - 22:23 #22
har lig et lille sidste spørgsmål... min kode ser sådan ud:
<html>
    <head>
   

        <title>Untitled</title>
<script type=text/javascript>

var harFokus
var ie = (document.selection.createRange)?true:false


function smilEmil(){
elm = document.getElementById('smiley')
elm.style.display = (elm.style.display=="none")?"block":"none";
}

function tingEmil(){
elm = document.getElementById('ting')
elm.style.display = (elm.style.display=="none")?"block":"none";
}

function indsaet(smil){
if(ie){
  if (harFokus) {
  rng = document.selection.createRange();
  rng.text = smil;
  }
}else
  document.frm.tekst.value += smil
}


function efter(){
document.frm.tekst.focus();
}

</script>
<style type="text/css">
  #luk
    {
    display:block;
    text-align:right;
      margin:0px;
    border-bottom:1px solid #000;
    background-color:#6777B3;
    }

  #smiley
    {
    border:1px solid #000;
    position:absolute;
    height:100px;width:500px;
    }
   
#ting    {
    border:1px solid #000;
    position:absolute;
    height:100px;width:500px;
    }
</style>
    </head>

<body>
<form action="compile.php" method="post" name='frm'>
Filnavn:<br>
<input name="filnavn" value=".tex"><br>
Tekst<br>
<textarea onfocus="harFokus = true;" onblur="harFokus = false"; style="width:644px;height:390px;" name="tekst">

</TEXTAREA><br><br>
<a href="java script:void(0)" onclick="smilEmil();">Indsæt Matematik</a> | <a href="java script:void(0)" onclick="tingEmil();">Greek</a> <br>

<div id="smiley" style="display:none;">
<div id="luk">Matematik                <a href="java script:void(0)" onclick="smilEmil()" title="Luk">X</a></div>

<a href="java script:void(0)" onmousedown="indsaet('\\frace{}{}')" onmouseup="efter();">Brøk</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('x^{}')" onmouseup="efter();">x^k</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('\\sqrt{}')" onmouseup="efter();">Kvadratrod</a>&nbsp;

</div>

<div id="ting" style="display:none;">
<div id="luk">Greek                <a href="java script:void(0)" onclick="tingEmil()" title="Luk">X</a></div>

<a href="java script:void(0)" onmousedown="indsaet('\\gamma')" onmouseup="efter();">Gamma</a>&nbsp;


</div>

<br>
<br>
<br>
<br>
<br>
<br><input type="submit" name="Compile" value="Compile"> <input type="reset" name="Rensfelter" value=Reset>
</form>
<br>



</body>
</html>

NU har jeg 2 af de der windows ting... hvis jeg har den ene åben og åbner den anden bliver der bare oven i... har i et eks. på hvordan den automatisk lukker andre åbne og åbne den pågældene man har trykket på??
Avatar billede grunken Nybegynder
06. februar 2004 - 14:20 #23
Det kan jo sagtens laves :-)

men er det ikke umiddelbart lettere at give både #ting og #smiley en baggrundsfarve, eks. hvid ?

så har brugeren også selv mulighed for at bestemme om de foregående skal lukkes eller ej :-)
Avatar billede vels Nybegynder
19. februar 2004 - 18:45 #24
vil du ik noget givet et svar .... så du kan få lidt points :)
Avatar billede grunken Nybegynder
19. februar 2004 - 21:04 #25
Svarer :o)
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

IT-JOB

Politiets Efterretningstjeneste

Teknisk IT-sikkerhedsspecialist i PET

Capgemini Danmark A/S

Open Application (Denmark)

Rambøll Management Consulting

Senior Software Engineer

Capgemini Danmark A/S

AI Data Architect