Autor Zpráva
echo
Profil *
Mám takový javascript, kde potřebuji nahrát do proměnné zdroj obrázku,
třeba s názvem
pixel
Problém je v tom, že konstrukce
promenna = document['pixel'].src
ani
document.pixel.src

nechcou fungovat.
(konkrétně:)
document.write("<input type=\"hidden\" name=\"pixel\" value=\"");
promennasnazvem = document.obr1.src;
document.write(promennasnazvem);

což by mělo vyrobit, za předpokladu že zdroj obrázku by byl třeba
zdroj.jpg

něco jako
<input type="hidden" name="pixel" value="zdroj.jpg">


Předem děkuji za odpověď.
Tomashek
Profil
Použijte
document.getElementsByName('pixel')[0]


místo
document.pixel.src
Joker
Profil
echo:
Dejte obrázku nějaké id a zaměřte ho normálně přes document.getElementById()
Nick
Profil *
To echo:

Mylsím si že ať už děláte něco rozsáhlejšího, nebo i menšího v každém případě se dá použít nějaký framework. Tuším že i selektorový framework existuje. Nastudujte problematiku a programujte "rychleji" a k tomu ještě cross-browserově =).

Jinak doporučuji obeznámení s frameworkem jQuery, nebo možná MooTools.
Chamurappi
Profil
Reaguji na Nicka:
To je (nejen) v tomto případě zbytečná ztráta času a výkonu. Nedoporučuji tahat framework kvůli takové trivialitě.

a k tomu ještě cross-browserově =)
Co je na document.getElementById necrossbrowserové?
Nick
Profil *
Chamurappi:
Nedoporučuji tahat framework kvůli takové trivialitě.
Tohle je část kódu .. bůh ví co ve výsledku dělá za portál. Je přímo nutné obeznamovat všechny s technologiemi co usnadňují práci a nutí je učit se a zdokonalovat.

Co je na document.getElementById necrossbrowserové?
Na tomhle nic =). Nemyslel jsem přímo tohle, spíš obecně když něco dělá v JS. Nakonec by na nějakou nekompaktibilitu narazil.
Chamurappi
Profil
Reaguji na Nicka:
Je přímo nutné obeznamovat všechny s technologiemi co usnadňují práci a nutí je učit se a zdokonalovat.
Framework k tomu nenutí. Naopak, je to někdy až příliš pohodlná cesta k něčemu, co vypadá na první pohled hezky.

Nakonec by na nějakou nekompaktibilitu narazil.
Framework ho před nekompatibilitami nakonec stejně neuchrání a většina z nich je řešitelná snadněji než v CSS.
Nick
Profil *
Chamurappi:
Framework k tomu nenutí. Naopak, je to někdy až příliš pohodlná cesta k něčemu, co vypadá na první pohled hezky.
Tak to jsem nepochopil, zkus to prosím napsat trochu jinak.

Framework ho před nekompatibilitami nakonec stejně neuchrání a většina z nich je řešitelná snadněji než v CSS.
Však u frameworku máš přesně jistotu na čem to poběží a na čem ne =).
Chamurappi
Profil
Reaguji na Nicka:
zkus to prosím napsat trochu jinak
Jak tě framework nutí ke zdokonalování?
$(document).ready(function()
{
  $("#portfolio div.ukazka").jcarousel();
});
Volá se to jednoduše, vypadá to hezky, ale co se z tohohle naučíš? Vidíš z toho alespoň, že $("#portfolio div.ukazka") je výkonově dražší než $("#ukazka")?

Však u frameworku máš přesně jistotu na čem to poběží a na čem ne =).
To jsem zase nepochopil já. Jaké jistoty máš? V klasickém JS napíšu:
document.body.onclick = function(e)
{
  var event = e || window.event;
  var target = event.target || event.srcElement;
  // … následuje nějaká práce target
}
V jQuery je vyřešena jen ta nekompatibilita, kterou zahlazuje třetí řádek, nikoliv ta, o kterou se postará čtvrtý. Existuje mnohem víc příkladů, kdy se ukazuje, že tahle proklamovaná „cross-browserovost“ je jen líbivý mýtus, protože zakrývat všechny nuance ani nemá smysl. Zahlazená je jen část rozdílů a na značnou část z nich by autor stránky při vhodné stavbě kódu nikdy nenarazil. S frameworkem se už nemusí starat vůbec o vhodnou stavbu a o efektivitu — to ho nutí učit se a zdokonalovat?
echo
Profil *
V první řadě chci poděkovat za odpovědi a omluvit se moderátorovi fóra za zdvojení příspěvku - nebylo to úmyslně.
Nevím, asi jsem opravdu blbý, ale když změním kód na
 document.write("<input type=\"hidden\" name=\"pixel\" value=\"");
 promennasnazvem = document.getElementsByName('pixel')[0];
 document.write(promennasnazvem);
 document.write("\">");

tak mi napíše že zdroj obrázku je "undefined" ...
Chamurappi
Profil
Reaguji na echa:
A máš tam opravdu v době, kdy se tento kód vykonává, obrázek s name="pixel"? Tipnul bych si, že ne (jistý si být nemůžu, dodávej prosím vždy živou ukázku). Kdybys ho tam měl, vypsalo by ti to něco jako „[object]“, protože se do té proměnné snažíš dát obrázek a ne jeho src.
echo
Profil *
Obrázek tam je, protože tahle funkce se volá tlačítkem => dlouho po načtení stránky. A i když přesunu skript z hlavičky do těla dokumentu, pořád dostávám jenom "undefined" ...

Chamurappi:
dodávej prosím vždy živou ukázku
To nevím jestli by pomohlo, s mým osobitým stylem programování se v tom moc nejde vyznat ....

webpages.atlasweb.cz/malovani/malovaninew.php

Dole si člověk zvolí barvu, pak klikáním na ty čtverečky se jejich barva změní, pak se to uloží do souboru s názvem IPADRESA.txt (např. 81.19.2.114.txt), a tady je zakopaný pes - napíše to jenom undefined.

Prosím nerozmlouvejte mi můj ******* způsob provedení, spíš by mě zajímalo, jak donutit ten zpropadený IE, aby to už konečně udělal ....
echo
Profil *
A místo těch hvězdiček má být nešikovný
_es
Profil
echo:
Načo tam používaš metódu document.write?
Vieš vôbec, aký má efekt zavolanie tejto metódy pre úplne načítaný dokument?
Ak to spravíš trochu normálnejšie, tak ti to snáď bude fungovať.
A chybu to hádže aj vo Firefoxe.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0