
Objasnění JS kódu
Ahoj, může mi to někdo vysvětlit?
R1 $('.con').on('click', 'p', function(){
R2 var value = $(this).html();
R3 var tempInput = document.createElement("input");
R4 tempInput.style = "position: absolute; left: -1000px; top: -1000px";
R5 tempInput.value = value;
R6 document.body.appendChild(tempInput);
R7 tempInput.select();
R8 document.execCommand("copy");
R9 document.body.removeChild(tempInput);
R10 });
R1 - jasný
R2 - jasný
R3 - proč mám vytvářet nový element <input> když požadovaný text již mám?
R4 - a ještě navíc ho stylovat?
R5 - jasný
R6 - vytvoření potomka? Proč?
R7 - nevím
R8 - tohle by snad mělo uložit požadovaný text do schránky (to jediné potřebuji)
R9 - jasny
Proč nefunguje prostě jen něco jako
$('.con').on('click', 'code', function()
{
var value = $(this).html();
var tempInput;
tempInput.value = value;
tempInput.select();
document.execCommand("copy");
});
Díky moc.
Ked chces dat nieco do schranky v JS, tak si najprv musis vyhladat ze co existuje v JS na vkladanie do schranky. Ked JS neposkytuje ziadne priame neco.daj_do_schranky(text), tak sa to musi ojebavat nejakym novym prvkom, akj existuje prikaz na kopirovanie prvku. No a to este mozes byt rada, lebo teoreticky ani to nemuselo existovat :D
Neviem ci v JS existuju ine sposoby, nezaujimalo ma to nikdy, ale mozes si hladat googlom alebo v JS referencii.
Select (R8) lze uplatnit jenom pro text z input nebo textarea.
Ještě lze použít metodu setSelectionRange() dostupnou jenom pro input.
Domnívám se tedy, že v zásadě odlišný způsob není k dispozici.