
Doplnění názvu objektu z jiného objektu
Ahoj,
volám v js něco jako
wrap.page.home();
ale co když ten poslední název objektu je uložen v jiném objektu a znám pouze jeho id.
var names = {1:home, 2:news, 3:search};
zkoušel jsem to volat takto ale nefunguje to
wrap.page.names.1()
Poradí někdo? Dík
wrap.page.names[1] případně wrap.page.names[1]() pokud je to funkce.
Dík. To jsem zkoušel, ale nechtěl jsem to sem psát pro dezorientaci případné odpovědi. Je možné, že by to nějaký js neuměl? Jedná se o js v androidu.
Ne, to je naprosto standardní záležitost.
Tak nevím, pořád dostávám chybu: Uncaught TypeError: Cannot read property '1' of undefined
Tak evidentně už to "names" je undefined.
Tak ono to nejede ani v prohlížeči...
1
Aha, takovouhle podivnost myslíš. Potom teda:
A co jsi myslel ty? Stejně to nefunguje.
Ale funguje.
V tom online testeru to jde ale když to uložím lokalně na disk tak to nejde.
Tak to asi máš lokálně jinak. Ale tak nějak netuším, jak to tam máš, když to neukážeš.
index.html
a chyba : Uncaught TypeError: Cannot set property 'innerHTML' of null
Script dej až za body nebo to navěš na událost onload. Jinak se snažíš pracovat s body dřív, než ho vytvoříš.
Myslíš mezi
</body>
</html>?
Ano.
Děkuji za pomoc.
Můžu ještě jeden zvláštní dotaz? Nevíš jak bych mohl ten soubor index.html uložit? Načetl jsem do head cca 80 souborů .js a chci aby tam zůstaly trvale. Díky.
Jak uložit? Snad sis ho sám vytvořil, ne?
Aby všechny ty js soubory trvale zůstaly po načtení v tom index.html. Abych to nemusel vkládat po jednom souboru do toho head.
Nerozumím. Můžeš uvést nějaký příklad?
Do index.html mezi <head></head>načítám cca 80 souborů a 150 css souborů - pro lepší přehlednost při vývoji mojí aplikace. Teď spustím index.html a ten si všechno načte, no a teď by se mi šiklo z toho vygenerovat nějak automaticky pouze jeden soubor index.html který bude mít všechno v sobě a nebude potřebovat ty externí soubory.
To není zase tak dobrý nápad. Lepší je z toho udělat jeden JS a jeden CSS. Říká se tomu bundlování a používá se pro to např. WebPack.
A výsledkem bude co?
To jsem tam snad napsal. Jeden JS a jeden CSS soubor.
Ano, zeptám se jinak, co tím získám, jestli budu mít v html 3000 řádků obsahující js nebo budu mít 3000 řádků v jednom externím soubor.js a ten budu načítat do html.
V HTML souboru bude HTML. V JS souboru bude JavaScript. V CSS souboru bude CSS.
Pokud ti to nepřijde dostatečné, určitě bude možné to nastavit tak, aby to nakonec bylo v jednom souboru.
Super, a dokážeš mi odpovědět na otázku z 30.12.2019 23:01?
Však já ti na ni odpověděl - WebPack.