Avatar billede bad24 Nybegynder
13. november 2005 - 11:17 Der er 11 kommentarer og
1 løsning

markér tekst i celle

Hejsa.

Hvordan kan man lave at hvis nogen klikker på et link så bliver teksten i cellen markeret og evt. kopieret til udklipsholder?

- lars
Avatar billede _eksperten_ Nybegynder
13. november 2005 - 12:11 #1
Brug følgende script:

<Script Language="JavaScript">

function copytoCB(theField) {
var tempval=eval("document."+theField);
tempval.focus();
tempval.select();
if (document.all){
therange=tempval.createTextRange();
therange.execCommand("Copy");
}
}
//-->
</script>
Avatar billede _eksperten_ Nybegynder
13. november 2005 - 12:12 #2
<input type="button" value="Copy to Clipboard" onClick="copytoCB('navnpåform')">
Avatar billede bad24 Nybegynder
13. november 2005 - 12:22 #3
har tilføjet <script langu... til header.
Og dette under body
<form action="" method="post" name="test" id="test">
  test
    <label>
    <input name="test" type="text" value="test">
  </label>
    <p><input type="button" value="Copy to Clipboard" onClick="copytoCB('test')">&nbsp;</p>
</form>
Men virker er altså ikke helt.
Skal lige siges at jeg ikke er så garvet endnu
Avatar billede _eksperten_ Nybegynder
13. november 2005 - 12:27 #4
Sorry...det var min fejl.. Du skal skrive følgende:

onClick="copytoCB('navnpåform.navnpåelement')">

så i dit tilfælde

onClick="copytoCB('test.test')">
Avatar billede bad24 Nybegynder
13. november 2005 - 12:31 #5
det virker ;)
Men er det kun kompatibel med IE?
Avatar billede _eksperten_ Nybegynder
13. november 2005 - 12:43 #6
Markeringsdelen virker i alle browsere..  mener at du skal bruge document.getElementById for at få det til at virke i FF bl.a.
Avatar billede _eksperten_ Nybegynder
13. november 2005 - 12:48 #7
therange=tempval.createTextRange();
therange.execCommand("Copy");

virker kun i IE, så vidt jeg er orienteret.
Avatar billede bad24 Nybegynder
13. november 2005 - 12:49 #8
noget ala. dette ?
document.getElementById("test.test")
Men hvor skal det tilføjes? :)
Avatar billede _eksperten_ Nybegynder
13. november 2005 - 12:52 #9
Jeg har googled lidt på det og det lader til at funktionen der kopierer til clipboardet kun virker i IE. Så du kan altså ikke få det til at virke på nogen måde i FF. Det er også derfor document.all bruges, som er specifikt for IE.
Avatar billede bad24 Nybegynder
13. november 2005 - 13:16 #10
æv da.
Nå men jeg siger nu alligevel tak :)
Avatar billede _eksperten_ Nybegynder
13. november 2005 - 13:22 #11
Det var da så lidt :)
Og tak for point.
Avatar billede olebole Juniormester
13. november 2005 - 14:06 #12
<ole>

Der er ingen undskyldninger for at bruge 'document.all'. Den fungerer nemlig også i IE langt dårligere end 'document.getElementById'.
At bruge den til at spørge, om 'dette er en ie' er en ubrugelig idé, da andre browsere også forstår 'document.all' ... f.eks: Opera.

Desuden er eval en frygtelig dårligt performende funktion i JavaScript og - som her - ofte unødig og fejlanvendt.

Ydermere er det noget frygteligt rod at have en form, hvis 'name' og 'id' er 'test' - og et element i samme form, hvis 'name' også er 'test'. Det er i høj grad at sætte vand over til problemer  :)

Til slut er script-tagget gammel og invalid kode - og label-elementet brugt på en misforstået måde.

En langt bedre løsning på samme opgave kunne være:

<script type="text/JavaScript">
function copytoCB(tempval) {
    if (tempval.createTextRange) {
        tempval.select();
        therange = tempval.createTextRange();
        therange.execCommand("Copy");
    }
}
</script>

<form action="" method="post">
  test
    <input name="test" type="text" value="test">
    <p><input type="button" value="Copy to Clipboard" onClick="copytoCB(this.form.test)">&nbsp;</p>
</form>

/mvh
</bole>
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