ako vytvorit tlacitka copy a paste??

Programovacie jazyky, rady, poradňa...
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

ako vytvorit tlacitka copy a paste??

Príspevok od používateľa DeeJay3 »

cafte potreboval by som nieco vymysliet...mam stranku na ktorej mam suciastky a pri kazdej mam obj cislo...potreboval by som k tomu cislu pridat tlacitko ktore mi to cislo(alebo hociaky text ktory tam zadefinujem) skopirovalo ....druhe tlacitko bude mat funkciu vlozit skopirovane cislo(alebo ten text) do policka vedla tohoto druheho tlacitka...potrebujem abyt o fungovalo aj tak aby tlacitka mohli byt v odlisnych kartach prehliadaca alebo oknach ....skusal som script na kopirovanie ale v opere to nefunguje....mozno by sa to dalo vyriesit pomocou nejakeho externeho suboru do ktoreho sa ten text po stlaceni prveho tlaitka nakopiruje a s druhym tlacitkom ho vlozim s toho suboru do policka ke potrebujem....skusal som to ale potrebujem aby to fungovalo aj v opere..vie mi niekto poradit??
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

Komplikovane riesenie. Co tak jednoduchy javascript ktory by ti obsah inputu X skopiroval do inputu Y ? (mal by si len 1 button)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Univerzálne riešenie, na vkladanie čohokoľvek do clipboardu, neexistuje (kedže ide o bezpečnostné riziko). Teda aby som bol úplne presný, nedá sa to urobiť pomocou javascriptu, ale treba použiť Java applet (možno funguje aj Flash).
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ak som to dobre pochopil, on to chce mať iba v rámci stránky. Kopírovanie medzi dvoma otvorenými tabmi v opere/mozile/IE a preto by to nemusel zákonite prenášať v clipboarde. Môže si to preniesť v cookies nejak takto:

Kód: Vybrať všetko

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
</script>
</head>

<body>
<input type="text" name="vstup" />
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[0].value)">copy</a><br />
<input type="text" name="vystup" />
<a href="#" onclick="document.getElementsByName('vystup')[0].value=(getCookie('clipboard'))">paste</a>
</body>
</html>
ak to ale budeš skúšať, treba na serveri (localhoste, freehostingu, svojom serveri..). Nestači aby si to mal ako html a otvoril z disku
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Príspevok od používateľa DeeJay3 »

nj ...funguje to perfektne ako potrebujem...lenze ja tych vstupov na jednej stranke potrebujem vela ...a na druhej zasa iba jedno tlacitko vložiť....tak som tam nakopiroval tie vstupy viacej a rozlisil:

Kód: Vybrať všetko

<input type="text" name="vstup" /> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[0].value)">copy</a><br /> 
<input type="text" name="vstup" /> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[1].value)">copy</a><br /> 
<input type="text" name="vstup" /> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[2].value)">copy</a><br /> 
<input type="text" name="vstup" /> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[3].value)">copy</a><br /> 
...no nepotrebujem tam <input> ale cislo a vedla neho tlacitko...nic tam vpisovat nepotrebujem...napr:
SO78956 {KOPIROVAT}

SO45321 {KOPIROVAT}
KAZDEMU TLACITKU ZADEFINOVAT AKU HODNOTU SI MA ULOZIT
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

skús takto:

Kód: Vybrať všetko

<span name="vstup">SO78956 </span><a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[3].innerHTML)">copy</a><br />
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Príspevok od používateľa DeeJay3 »

cez <span> mi to neslo...to som skusal celkom prve ked som skopiroval tvoj script....

//autoeditácia príspevku ( 30 Jan 2009, 21:24 )
no poviem vam poradil som si ... :oops: :P

Kód: Vybrať všetko

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Untitled Document</title> 
<script> 
function getCookie(c_name) 
{ 
if (document.cookie.length>0) 
  { 
  c_start=document.cookie.indexOf(c_name + "="); 
  if (c_start!=-1) 
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start); 
    if (c_end==-1) c_end=document.cookie.length; 
    return unescape(document.cookie.substring(c_start,c_end)); 
    } 
  } 
return ""; 
} 

function setCookie(c_name,value,expiredays) 
{ 
var exdate=new Date(); 
exdate.setDate(exdate.getDate()+expiredays); 
document.cookie=c_name+ "=" +escape(value)+ 
((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); 
} 
</script> 
</head> 

<body>
 
S0123<input type="text" name="vstup" value="S0123" STYLE="display:none;"/> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[0].value)">copy</a><br /> 

S0234<input type="text" name="vstup" value="S0234" STYLE="display:none;"/> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[1].value)">copy</a><br /> 

S0345<input type="text" name="vstup" value="S0345" STYLE="display:none;"/> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[2].value)">copy</a><br /> 

S0456<input type="text" name="vstup" value="S0456" STYLE="display:none;"/> 
<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[3].value)">copy</a><br /> 

</body> 
</html>
audiotrack dakujem velmi pekne
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

tak si skúšal zle :) Určite si to dal iba do spanu namiesto inputu, ale nezmenil si pridavanie do "clipboardu" kde už nebude value, ale innerHTML. Ešte raz si to pozri (zato som ti to napísal aj s tým linkom na kopírovanie)

//edit: a ak to chceš už cez tie inputy ako máš, a aj text pred tým, tak daj aspon <input type="hidden" name="vstup" /> ;)
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Príspevok od používateľa DeeJay3 »

//autoeditácia príspevku ( 30 Jan 2009, 21:58 )
vazne to nejde aspon v opere urcite nie....preco si pisal ze to musim mat na servery alebo localhoste??...skusil som to obycajne s disku htm subor otvorit a ide to aj bez toho aby to bolo na servery..hm? :) ...( inak neviem preco ale dal som odpovedat napisal som co som cel dal odoslat vypisalo chybu alebo vypisalo tema neexistuje dal som obnovit stranku a tema nikde nebola ako keby sa vymazala celkom uplne...dal som iba krok spät v prehliadaci ..odoslal este raz nejaky starsi prispevok a potom tam tema bola...neviem to sa stalo len mne??)

//autoeditácia príspevku ( 02 Feb 2009, 22:08 )
audiotrack neves mi este poradit mam mensi problem...ked kliknem na ten odkaz ktory mi ma ten text skopirovat tak to automaticky vyhodi na zaciatok(hore) stranky na ktorej prave si...kedze mam na jednej strane vela suciastok a dokial by nejaky uzivatel nasiel tu co potrebuje a pod nou dalsiu nebolo by velmi prakticke aby ho to hodilo hore a on tu dalsiu hladal znova...da sa to vyriesit??..
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

namiesto

Kód: Vybrať všetko

<a href="#" onclick="setCookie('clipboard',document.getElementsByName('vstup')[3].value)">copy</a><br /> 
to daj ako

Kód: Vybrať všetko

<a href="javasctipt:setCookie('clipboard',document.getElementsByName('vstup')[3].value)">copy</a><br /> 
a tak isto aj pri tom paste (nebude to na onClick, ale v href
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Príspevok od používateľa DeeJay3 »

vyskusal som to bez zmeny "paste"...ide to aj tak....
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

tráápna opera :)

tak skús ešte takúto fintu:

Kód: Vybrať všetko

<a name="xxx"><a href="#xxx" onclick="setCookie('clipboard',document.getElementsByName('vstup')[1].value)">copy</a><br />
síce ti neostane stránka na rovnakom mieste, no nehodí ťa na vrch, ale ostane pozícia aspoň približná (presnejšie povedané zkopírovaná položka skočí na prvý riadok a viditelné budú všetky nasledujúce)
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Príspevok od používateľa DeeJay3 »

funguje to bez zmeny "paste"

//autoeditácia príspevku ( 02 Feb 2009, 22:47 )

Kód: Vybrať všetko

<a href="javasctipt:setCookie('clipboard',document.getElementsByName('vstup')[3].value)">copy</a><br />

Kód: Vybrať všetko

<a href="#" onclick="document.getElementsByName('vystup')[0].value=(getCookie('clipboard'))"></a>
skusam to v IE
Napísať odpoveď