Autor Zpráva
varch
Profil *
Zdravím, mám toto:

<a id="elOdkaz" href="" download>
/* divy s data-odkaz="...." */

...
for (let i = 0; i < konec; i++) {
let odkaz = div[i].dataset.odkaz;
dwn(odkaz);
}
var dwn = function(odkaz) {
 .setAttribute('href', url);
 elOdkaz.click();
}

v cyklu probíhám prvky (nejsou to a elementy ) sbírám url z data-* vytvářím odkazy a na každý odkaz zavolám funkci kde v elementu "A" pokaždé měním href atribut a volám click() metodu. Ale vždy se otevře ke stažení jen poslední odkaz. Proč?


vloudila se mi tam chybička když sem to přepisoval
7. řádek:
elOdkaz.setAttribute('href', url);



a zase :-)
7. řádek:
elOdkaz.setAttribute('href', odkaz);

nechtěl jsem to kopírovat celý tak sem to zkrátil a udělal pár chyb.
Kajman
Profil
Časté potíže, zajímavosti a poučné debaty » Uchování hodnot proměnných v anonymních funkcích — lexikální uzávěry
varch
Profil *
pořád nevím kde je problém.


když budu postupně vytvářet elementy a s odkazem a vsunu je do elementu a postuně v cyklu na ně zavolám click(), tak se zobrazí ke stažení jen poslední s tím, že vývojářské nástroje mi nic nezobrazí a vše je prázdné.


ale tady přece vůbec neni problém se zachováním aktuální hodnoty, do funkce se vždy posílal jiný odkaz a nebo netuším co si mi tim odkazem chtěl říct.
Kajman
Profil
Možná jsem čekal problém v něčem jiném. Zkuste prosím vytvořit živou ukázku.

Edit: prohlížeče se při tom download atributu chovají různě. Firefox nabídne jen poslední, Chrome všechny.
varch
Profil *
Kajman:
Edit: prohlížeče se při tom download atributu chovají různě. Firefox nabídne jen poslední, Chrome všechny.
ted jsme to zkoušel ve chromu a tam to anbídne možnost zda chci stáhnout všechyn soubory... firefox mi nic nezobrazi la stahnul jenom poslední.... hm... máte nějaké řešení jak by se to dalo udělat?
Kajman
Profil
Vypadá to, že ve firefoxu jde v cyklu použít setInterval, ale nesmí mít příliš malou hodnotu zpoždění.
Živá ukázka
varch
Profil *
a já to zkoušel na 1 sekundu a stejnak to nešlo... skusím tvůj postup


napadlo mě udělat vyskakovací okno a nasmrovat na skript kterej by to pak následně zavřel javascriptem


ten tvůj způsob funguje. Díky


prvně sem to s nim zkoušel také ale nešlo to

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0