mboost-dp1

Java - copy to clipboard


Gå til bund
Gravatar #1 - siliankaas
4. nov. 2010 13:02
Hej

Jeg har fundet følgende kode på nettet, der sådan set også virker som det skal :-)


<SCRIPT LANGUAGE="JavaScript">
function ClipBoard()
{
Kopi = holdtext.createTextRange();
Kopi.execCommand("Copy");
}
</SCRIPT>


<textarea id="holdtext" style="display:none;">Denne tekst bliver kopieret ind</textarea>


<input type="button" onClick="ClipBoard();" value="Copy">


Hvis jeg nu vil have flere knapper, findes der så en måde at gøre det smart på, således at jeg ikke skal skrive <SCRIPT> koden mange gange?
Gravatar #2 - myplacedk
4. nov. 2010 13:06
Det er JavaSCRIPT, hvilket er noget helt andet. ;-)
Gravatar #3 - siliankaas
4. nov. 2010 13:06
A sorry, mente også javascript

Men altså det kode jeg fandt på nettet virker, mangler bare en mulighed for at kunne lave mere end én knap.
Gravatar #4 - myplacedk
4. nov. 2010 13:08
Jeg har ingen anelse om hvordan det er crossbrowser-mæssigt osv. Men hvis vi nu forudsætter at koden er OK, kan du løse dit problem på denne måde:

<script type="text/javascript">
function clipboard(id) {
var elem = document.getElementById(id);
var text = elem.createTextRange();
text.execCommand("Copy");
}
</script>

<textarea id="holdtext" style="display:none;">Denne tekst bliver kopieret ind</textarea>

<input type="button" onClick="clipboard('holdtext');" value="Copy">


(Plus jeg ikke kunne lade være med at rette nogle småting.)
Gravatar #5 - siliankaas
4. nov. 2010 13:13
Det må jeg lige prøve.... :D
Gravatar #6 - siliankaas
4. nov. 2010 13:24
Det virker så ikke helt - min browser skriver :

Meddelelse: 'null' er null eller ikke et objekt
Gravatar #7 - myplacedk
4. nov. 2010 13:34
<script type="text/javascript">
function clipboard(id) {
var elem = document.getElementById(id);
if (elem == null) {
alert(id + " ikke fundet");
return;
}
var text = elem.createTextRange();
if (elem == null) {
alert("TextRange kunne ikke skabes");
return;
}
text.execCommand("Copy");
}
</script>

<textarea id="holdtext" style="display:none;">Denne tekst bliver kopieret ind</textarea>

<input type="button" onClick="clipboard('holdtext');" value="Copy">
Gravatar #8 - squad2nd
4. nov. 2010 13:39
#6
Det virker ikke i Firefox før du har givet den adgang via en streng i dine preferences.

(about:config > signed.applets.codebase_principal_support = true
)

Generelt er det ikke cross-platform og efter min mening en sikkerhedsrisiko. (forestil dig at nogen kopierer dit kreditkortnummer / kontrolcifre og bagefter paster det automatisk på en anden side... fucked.) Det eneste jeg har læst er at man muligvis ville kunne lave en copy to blipboard function ved at bruge Flash til at foretage kopieringen og dernæst de alm. JavaScript metoder til at foretage paste.
Gravatar #9 - siliankaas
4. nov. 2010 14:11
#7 Det virker - jeg takker og bukker.
#6 Scriptet skal ikke bruges på Internettet, men kun lokalt - så det gør ikke så meget det ikke virker i FF (selvom det selvfølgelig var fedest hvis det virkede begge steder)

EDIT: Findes der da en måde at gøre det mere sikkert, og der også virker i FF?
Gravatar #10 - squad2nd
4. nov. 2010 14:47
#9
Nej der findes desværre ikke en måde at gøre det mere sikkert.
At IE tillader det som default, er én af grundene til hvorfor Firefox bliver udnævnt som den sikreste browser.
Gravatar #11 - myplacedk
4. nov. 2010 15:00
siliankaas (9) skrev:
#7 Det virker - jeg takker og bukker.

Så har du gjort et eller andet forkert, for det er nøjagtigt det samme, bortset fra at du får en mere meddelsom fejlbesked.
Gravatar #12 - siliankaas
4. nov. 2010 15:33
#10 tak for info.
#11 Kan se jeg misforstod dig lidt først, men tak alligevel - det virker som det er tiltænkt nu :-) (omend det måske ikke er så sikkert)
Gravatar #13 - squad2nd
4. nov. 2010 16:13
#12
Jeg kopierede og prøvede også myplacedk's eksempel af første gang, og det fungerede, så ja du har nok fucket up. :) JavaScript koden skal være indhyllet i <head> tags, så de bliver udført per. event og ikke bare executed når browseren henter siden ind.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login