Avatar billede dkkarpen Nybegynder
09. juli 2002 - 23:20 Der er 25 kommentarer og
1 løsning

Kopier kode til udklipsholder

Halløj

Jeg ved ikke om problemet kan løses i JavaScript. Jeg er egentlig også ligeglad bare det kan afvikles i browseren og køre på en MS web server.

Men nu til problemet. Kan man tage et stykke kode placeret mellem to <body> tags og kopiere det til windows udklipsholder. Hvis ja hvordan?
Avatar billede dkkarpen Nybegynder
09. juli 2002 - 23:40 #1
Evt. bare en funktion der kopierer alt på siden. Som med komandoen Ctrl+a
Avatar billede eagleeye Praktikant
10. juli 2002 - 00:04 #2
mener du Ctrl-C ?
Avatar billede krogstrup Nybegynder
10. juli 2002 - 00:35 #3
han/hun mener Ctrl-A + Ctrl-C

:-)
Avatar billede hells Nybegynder
10. juli 2002 - 01:05 #4
Prøv at se, om denne kan klare jobbet:
function kopier(){
    kopier = document.body.createTextRange();
    kopier.execCommand("RemoveFormat");
    kopier.execCommand("Copy");}

input type="button" value="kopier" onClick="kopier()" />
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 10:07 #5
Det virker perfekt. Er der andre muligheder end body?
Avatar billede ras2000 Nybegynder
10. juli 2002 - 10:39 #6
Alle dem du vil have, men jeg mener det er en ie specifik løsning. Du kan bruge DOM til at finde de tags du er interesseret, og kopiere tekstrangen fra dem. IE specifikt kan du finde dit tag via id'et. Hvis du har <div id="mitID">en masse tekst og tags</div>, så kan du kopiere det via
kopier = document.all.mitID.createTextRange();
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 10:51 #7
Hvad refererer "all" til?

Jeg prøvede dit forslag med <div> tags. Men fik fejl.

'document.all.mitID' er null eller ikke et objekt
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 10:54 #8
Sorry. En tyrkfejl. Men nu skriver den "Objektet understøtter ikke den egenskab eller metode."
Avatar billede ras2000 Nybegynder
10. juli 2002 - 11:03 #9
Min fejl, jeg havde misforstået commandoen. Så blev jeg så meget klogere. Jeg tror du er nød til at finde det du er interresseret i i din textrange. Det kan du gøre via regexp. Prøv at forklar hvad det er du skal finde inden for body, så kan det være jeg kan hjælpe.
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 11:07 #10
Dit forslag med alt inden for to div tags ville være helt perfekt. Hvis det kan lade sig gøre ;-)
Avatar billede ras2000 Nybegynder
10. juli 2002 - 11:20 #11
Jamen, så lav div tagsene, og brug regexp til at finde dem igen. Jeg prøver lige at få noget til at virke.
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 11:23 #12
Ok
Avatar billede ras2000 Nybegynder
10. juli 2002 - 11:39 #13
Hm, det var lidt nemmere end jeg havde troet. Prøv det her:
<HTML>
<head>
<script type="text/javascript">
function kopier(){
    kopier = document.body.createTextRange();
    kopier.moveToElementText(document.all.her);
    kopier.execCommand("RemoveFormat");
    kopier.execCommand("Copy");
}
</script>
</head>
<input type="button" value="kopier" onClick="kopier()" />
<div id="her">pladder tags tekst og sårn <b>formatteret</b> med en <table><tr><td>sdlkfj</td></tr></table></div>
</body>
</html>
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 11:48 #14
Nice. Men kan funktionen ikke efter den har kopieret flytte tilbage til start. For hvis man klikker to gange på knappen får man fejl.
Avatar billede ras2000 Nybegynder
10. juli 2002 - 11:55 #15
Det er linien med ExecCommand("Removeformat") der fucker det op. Jeg er ikke helt klar over hvad du skal gøre for at løse det smartest. En løsning ville være at reloade siden, en anden at gemme det der stod i dokumentet i en tekststreng, og genindlæse det. Men det virker kun ordentligt hvis det er en lille side. Prøv det her:
<script type="text/javascript">
function kopier(){
    str = document.all.mit.outerHTML;
    kopier = document.body.createTextRange();
    kopier.moveToElementText(document.all.her);
    kopier.execCommand("RemoveFormat");
    kopier.execCommand("Copy");
    document.all.mit.outerHTML = str;
}
</script>
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 12:02 #16
Refererer "mit" til "all" eller?
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 12:04 #17
Jeg vil helst undgå at reloade siden da den indeholder submittede værdier.
Avatar billede ras2000 Nybegynder
10. juli 2002 - 12:07 #18
Øh, mit var en fejl, jeg blander nogle ting sammen. Jeg kan godt forstå du ikke vil genindlæse, men jeg ved ikke helt nok om textrange objectet til at kunne sige hvad der går galt, og hvordan det løses. Jeg er i gang med at læse lidt op på det. Jeg vender tilbage.
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 12:12 #19
Ok
Avatar billede hells Nybegynder
10. juli 2002 - 12:26 #20
Her er så det virker i et textarea. Hvis det er noget problem, kan det jo formatteres til at ligne et div:'
function kopier(){
kopier = document.forms("minform").mitarea.createTextRange();
kopier.execCommand("RemoveFormat");
kopier.execCommand("Copy");
}

<form name="minform">
<textarea name="mitarea">
Tekst i textarea
</textarea>
</form>
Avatar billede hells Nybegynder
10. juli 2002 - 12:26 #21
og så en kopier-knap:
<input type="button" value="kopier" onClick="kopier()" />
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 12:53 #22
hells>>Da det jeg skal kopiere indeholder tags m.m. kan jeg ikke umiddelbart se at et textarea er en god idé.
Avatar billede ras2000 Nybegynder
10. juli 2002 - 12:58 #23
Jeg må opgive. Jeg kan ikke få den til at klare det to gange i træk. Muligvis er hells forslag det eneste rigtige. Problemet med det er at teksten inde i tekstarea'et ikke kan formatteres, du kan ikke lave tabeller osv.
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 13:08 #24
Nevermind. Du lavede en brugbar løsning. Tak for hjælpen.
Avatar billede ras2000 Nybegynder
10. juli 2002 - 13:23 #25
Jeg ville nu gerne have at hells fik de tyve af pointene, han kom da med det første brugbare forslag, som jeg så arbejdede videre med. Hells, hvis du vil have 20, så svar på http://www.eksperten.dk/spm/234227
Avatar billede dkkarpen Nybegynder
10. juli 2002 - 13:42 #26
ok sorry hells
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