Callback v javascriptu...? – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Callback v javascriptu...? – JavaScript, AJAX, jQuery – Fórum – Programujte.comCallback v javascriptu...? – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

Montezo
~ Anonymní uživatel
42 příspěvků
18. 11. 2021   #1
-
0
-

Zdravím, potřeboval bych poradit: 

Mám toto:

[code]<!DOCTYPE html>
<html lang="cs-cz">
    <head>
        <meta charset="utf-8" />
        <title>První webová aplikace v JavaScriptu</title>
    </head>
    <body>
        <h1>Vítejte nám Římané...</h1>
        <script type="text/javascript">
let vek = prompt("Zadejte svůj věk");
if (vek >= 18)
    document.write("Jste plnoletý");
else
    document.write("Nejste plnoletý");
document.write("<br />");
function zkrat(text, delka) {
if (text.length - 5 > delka)
text = text.substr(0, delka - 3) + '...';
return text;
}
text = 'Základním nedostatkem strojů je, že na ně neplatí žádná kouzla!';
zkraceny = zkrat(text, 16);
document.write("Původní text: " + text + "<br />");
document.write("Zkrácený text: " + zkraceny);
document.write("<br />");
let dny = ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"];
let d = new Date();
let den = d.getDay(); // vrátí číslo 0 - 6
document.write("Dnes je " + dny[den]);
document.write("<br />");
// vytvoříme si prázdné pole měsíců
let mesice = [];
// postupně přidáme měsíce se svátky, prvky pole tedy bude další pole
// leden
mesice.push(["Nový rok, Den obnovy samostatného českého státu", "Karina", "Radmila", "Diana", "Dalimil", "Tři králové", "Vilma", "Čestmír", "Vladan", "Břetislav", "Bohdana", "Pravoslav", "Edita", "Radovan", "Alice", "Ctirad", "Drahoslav", "Vladislav", "Doubravka", "Ilona", "Běla", "Slavomír", "Zdeněk", "Milena", "Miloš", "Zora", "Ingrid", "Otýlie", "Zdislava", "Robin", "Marika"]);
// únor
mesice.push(["Hynek", "Nela", "Blažej", "Jarmila", "Dobromila", "Vanda", "Veronika", "Milada", "Apolena", "Mojmír", "Božena", "Slavěna", "Věnceslav", "Valentýn", "Jiřina", "Ljuba", "Miloslava", "Gizela", "Patrik", "Oldřich", "Lenka", "Petr", "Svatopluk", "Matěj", "Liliana", "Dorota", "Alexandr", "Lumír", "Horymír"]);
// březen
mesice.push(["Bedřich", "Anežka", "Kamil", "Stela", "Kazimír", "Miroslav", "Tomáš", "Gabriela", "Františka", "Viktorie", "Anděla", "Řehoř", "Růžena", "Rút, Matylda", "Ida", "Elena, Herbert", "Vlastimil", "Eduard", "Josef", "Světlana", "Radek", "Leona", "Ivona", "Gabriel", "Marián", "Emanuel", "Dita", "Soňa", "Taťána", "Arnošt", "Kvido"]);
// duben
mesice.push(["Hugo", "Erika", "Richard", "Ivana", "Miroslava", "Vendula", "Heřman, Hermína", "Ema", "Dušan", "Darja", "Izabela", "Julius", "Aleš", "Vincenc", "Anastázie", "Irena", "Rudolf", "Valérie", "Rostislav", "Marcela", "Alexandra", "Evženie", "Vojtěch", "Jiří", "Marek", "Oto", "Jaroslav", "Vlastislav", "Robert", "Blahoslav"]);
// květen
mesice.push(["Svátek práce", "Zikmund", "Alexej", "Květoslav", "Klaudie", "Radoslav", "Stanislav", "Den vítězství", "Ctibor", "Blažena", "Svatava", "Pankrác", "Servác", "Bonifác", "Žofie", "Přemysl", "Aneta", "Nataša", "Ivo", "Zbyšek", "Monika", "Emil", "Vladimír", "Jana", "Viola", "Filip", "Valdemar", "Vilém", "Maxmilián", "Ferdinand", "Kamila"]);
// červen
mesice.push(["Laura", "Jarmil", "Tamara", "Dalibor", "Dobroslav", "Norbert", "Iveta, Slavoj", "Medard", "Stanislava", "Gita", "Bruno", "Antonie", "Antonín", "Roland", "Vít", "Zbyněk", "Adolf", "Milan", "Leoš", "Květa", "Alois", "Pavla", "Zdeňka", "Jan", "Ivan", "Adriana", "Ladislav", "Lubomír", "Petr a Pavel", "Šárka"]);
// červenec
mesice.push(["Jaroslava", "Patricie", "Radomír", "Prokop", "Cyril, Metoděj", "Den upálení mistra Jana Husa", "Bohuslava", "Nora", "Drahoslava", "Libuše, Amálie", "Olga", "Bořek", "Markéta", "Karolína", "Jindřich", "Luboš", "Martina", "Drahomíra", "Čeněk", "Ilja", "Vítězslav", "Magdaléna", "Libor", "Kristýna", "Jakub", "Anna", "Věroslav", "Viktor", "Marta", "Bořivoj", "Ignác"]);
// srpen
mesice.push(["Oskar", "Gustav", "Miluše", "Dominik", "Kristián", "Oldřiška", "Lada", "Soběslav", "Roman", "Vavřinec", "Zuzana", "Klára", "Alena", "Alan", "Hana", "Jáchym", "Petra", "Helena", "Ludvík", "Bernard", "Johana", "Bohuslav", "Sandra", "Bartoloměj", "Radim", "Luděk", "Otakar", "Augustýn", "Evelína", "Vladěna", "Pavlína"]);
// září
mesice.push(["Linda, Samuel", "Adéla", "Bronislav", "Jindřiška", "Boris", "Boleslav", "Regína", "Mariana", "Daniela", "Irma", "Denisa", "Marie", "Lubor", "Radka", "Jolana", "Ludmila", "Naděžda", "Kryštof", "Zita", "Oleg", "Matouš", "Darina", "Berta", "Jaromír", "Zlata", "Andrea", "Jonáš", "Václav, Den české státnosti", "Michal", "Jeroným"]);
// říjen
mesice.push(["Igor", "Olivie, Oliver", "Bohumil", "František", "Eliška", "Hanuš", "Justýna", "Věra", "Štefan, Sára", "Marina", "Andrej", "Marcel", "Renáta", "Agáta", "Tereza", "Havel", "Hedvika", "Lukáš", "Michaela", "Vendelín", "Brigita", "Sabina", "Teodor", "Nina", "Beáta", "Erik", "Šarlota, Zoe", "Den vzniku samostatného československého státu", "Silvie", "Tadeáš", "Štěpánka"]);
// listopad
mesice.push(["Felix", "Památka zesnulých (dušičky)", "Hubert", "Karel", "Miriam", "Liběna", "Saskie", "Bohumír", "Bohdan", "Evžen", "Martin", "Benedikt", "Tibor", "Sáva", "Leopold", "Otmar", "Mahulena, Den boje za svobodu a demokracii", "Romana", "Alžběta", "Nikola", "Albert", "Cecílie", "Klement", "Emílie", "Kateřina", "Artur", "Xenie", "René", "Zina", "Ondřej"]);
// prosinec
mesice.push(["Iva", "Blanka", "Svatoslav", "Barbora", "Jitka", "Mikuláš", "Benjamín", "Květoslava", "Vratislav", "Julie", "Dana", "Simona", "Lucie", "Lýdie", "Radana", "Albína", "Daniel", "Miloslav", "Ester", "Dagmar", "Natálie", "Šimon", "Vlasta", "Adam, Eva, Štědrý den", "1. svátek vánoční", "Štěpán, 2. svátek vánoční", "Žaneta", "Bohumila", "Judita", "David", "Silvestr"]);
// nyní přestoupíme k samotnému výpisu
let dy = new Date();
let deny = d.getDate()-1;
let mesicy = d.getMonth();
document.write("Dnes má svátek " + mesice[mesicy][deny]);
</script>
    </body>
</html>[/code]
Konrkétně:
function zkrat(text, delka) {
if (text.length - 5 > delka)
text = text.substr(0, delka - 3) + '...';
return text;
}
text = 'Základním nedostatkem strojů je, že na ně neplatí žádná kouzla!';
zkraceny = zkrat(text, 16);
document.write("Původní text: " + text + "<br />");
document.write("Zkrácený text: " + zkraceny);


Tato hodnota určuje, o kolik znaků se text zkrátí, ale je zajímavé, že změna této hodnoty se nijak neprojeví. A je zajímavé, že i tato hodnota určuje délku výsledného textu.
Jinými slovy, některé hodnoty mi tam přijdou duplicitní.  :hm
A jde trošku o to, že se v tom callbacku funkcí trošku ztrácím, a bylo by dobré to uchopit, než se v tom utopím kompletně...  :hm
 

Nahlásit jako SPAM
IP: 178.255.168.–
gna
~ Anonymní uživatel
1544 příspěvků
19. 11. 2021   #2
-
0
-

Duplicita znamená zdvojení/opakování. Nic okatého tam nevidím. A callback je když nějaké funkci předáš jinou funkci, která se pak zavolá. Klasicky třeba s [].forEach. Nic takového tam nemáš, tak se v tom nemůžeš ztrácet ;-)

Takže text se zkrátí jen pokud je aspoň o 6 znaků delší než je uvedená délka. Při zkracování se vezme o 3 znaky méně, protože se pak přidají 3 tečky.

To je věc, kterou když nepochopíš, tak si ji prostě přečteš znova a neběžíš s tím na fórum.

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
3732 příspěvků
23. 11. 2021   #3
-
0
-

   

[code]<!DOCTYPE html>
<html lang="cs-cz">
    <head>
        <meta charset="utf-8" />
        <title>První webová aplikace v JavaScriptu</title>
    </head>
    <body>
        <h1>Vítejte nám Římané...</h1>
        <script type="text/javascript">
let vek = prompt("Zadejte svůj věk");
if (vek >= 18)
    document.write("Jste plnoletý");
else
    document.write("Nejste plnoletý");
document.write("<br />");
function zkrat(text, delka) {
if (text.length - 5 > delka)
text = text.substr(0, delka - 3) + '...';
return text;
}
text = 'Základním nedostatkem strojů je, že na ně neplatí žádná kouzla!';
zkraceny = zkrat(text, 16);
document.write("Původní text: " + text + "<br />");
document.write("Zkrácený text: " + zkraceny);
document.write("<br />");
let dny = ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"];
let d = new Date();
let den = d.getDay(); // vrátí číslo 0 - 6
document.write("Dnes je " + dny[den]);
document.write("<br />");
// vytvoříme si prázdné pole měsíců
let mesice = [];
...
// nyní přestoupíme k samotnému výpisu
let dy = new Date();
let deny = d.getDate()-1;
let mesicy = d.getMonth();
document.write("Dnes má svátek " + mesice[mesicy][deny]);
</script>
    </body>
</html>[/code]
Konrkétně:
function zkrat(text, delka) {
if (text.length - 5 > delka)
text = text.substr(0, delka - 3) + '...';
return text;
}
text = 'Základním nedostatkem strojů je, že na ně neplatí žádná kouzla!';
zkraceny = zkrat(text, 16);
document.write("Původní text: " + text + "<br />");
document.write("Zkrácený text: " + zkraceny);
function zkrat(text, delka) // toto je cele divne, kdez zadas delka=10
    {
    if (text.length > delka + 5) // text.delka-min = 15
       {
       text = text.substr(0, delka - 3) + '...'; // text.delka - 7
       }
    return text;
    }

function inicializace()
    {
    var text;

    let vek = prompt("Zadejte svůj věk");
    if (vek >= 18)
        text = "Jste plnoletý";
    else
        text = "Nejste plnoletý";
    document.write(str+ "<br />");

    var text = 'Základním nedostatkem strojů je, že na ně neplatí žádná kouzla!';
    var zkraceny = zkrat(text, 16);
    text = "Původní text: " + text + "<br />" + 
    text+= "Zkrácený text: " + zkraceny + 
    text+= "<br />";
    document.write(text);

    let dny = ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"];
    let d = new Date();
    let den = d.getDay(); // vrátí číslo 0 - 6
    // vytvoříme si prázdné pole měsíců
    let mesice = [];
    ...
    // nyní přestoupíme k samotnému výpisu
    let dy = new Date();
    let deny = d.getDate()-1;
    let mesicy = d.getMonth();
    text = "Dnes je " + dny[den];
    text+= "<br />";
    text+= "Dnes má svátek " + mesice[mesicy][deny];
    document.write(text);

    // toto mas proc duplicitne?
    text = 'Základním nedostatkem strojů je, že na ně neplatí žádná kouzla!';
    zkraceny = zkrat(text, 16);
    text = "Původní text: " + text;
    text+= "<br />";
    text+= "Zkrácený text: " + zkraceny;
    document.write(text);
    }

inicializace();

callback je funkce predavana funkci
 

function fnA (fnB, text)
{
window[fnB](text)
}

fnA('alert', 'pozdrav');

Mne cela ta zprava pripada jako googlem prelozeny spam :)

Nahlásit jako SPAM
IP: 2001:718:2601:258:3814:5861:ae91:f71d...–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

Podobná vlákna

Callback — založil Anonym

Callback — založil Bobek6

Callback funkce s parametry — založil CommanderZ

Exception in tkinter callback — založil Marek Kadlčík

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý