Valcha Posted December 20, 2006 Report Posted December 20, 2006 Vai kāds ir mēģinājis ielikt <script Language = \"Javascript\"></script>"; iekš izsauktā ajax bloka? Saskāros ar to, ka tādā veidā ielikts Javascript nedarbojas. Ja es to lapu bez ajax pa tiešo atveru, tad, piemēram, alert ('aaa'); darbojas, bet ja caur ajax, tad ir klusums un nekādu erroru arī nav.. Toties, ja iekš ajax bloka izmantoju onChange, onSubmit utt. un tur iekšā rakstu javaskriptu, tad visu varu. Varbūt ir vēl kāda metode, kā izsaukt javascript-u bez <script> ? Ko Jūs iesakiet? Paldies, ja kāds zinās ko pateikt..
Valcha Posted December 20, 2006 Author Report Posted December 20, 2006 Kad skatos ieselektēju ajax bloku mozillā un paskatos sorsē, Javascript tagi ir un ir pareizi, tā kā ar eval diemžēl te nekāda sakara nav... Domāju, ka varbūt kāds pats ir pielietojis Ajax un izsauktajos blokos izmantojis Javascript.
bubu Posted December 20, 2006 Report Posted December 20, 2006 kas ir "iekš ajax bloka"? Tas ko tu saņem no servera caur XHR izsaukumu? Tad jau protams, ka neizpildās, jo tie jau ir tikai dati! Parasti jau tā nesūta skriptus, bet skriptus normāli salādē pašā lapā. Un tad, saņemot xml datus no servera, tos padod kādai funkcijai, kura arī izdara, kas ir vajadzīgs, ņemot par datiem saņemto (parāda/slēpj/aizpilda laukus, un tml lietas).
Valcha Posted December 20, 2006 Author Report Posted December 20, 2006 Jā, bubu, es domāju ajax rezultātā Javascript tagus. Man jau tā likas, ka nevarēs iekš rezultāta vēl darbināt Javascript, jo ajax jau ir nolasījis lapu, bet tomēr cerēju. Nu ko, tad jau nāksies no ajax tai lapas daļā atteikties. Paldies par atbildi.
andrisp Posted December 20, 2006 Report Posted December 20, 2006 Kāpēc tu nevari to skriptu uzreiz ielikt kodā ?
Valcha Posted December 20, 2006 Author Report Posted December 20, 2006 Man iesākumā bija paredzēts, ka atkarībā no izvēlētajiem selektiem tūkstoši datu var parādīties, pazust atkarīgajos selektos. Negribēju lapas bekgraundā turēt kilobaitus ar datiem. Bet nu jau tāpat problēma atrisinājās - plānojamie dati saruka līdz apmēram 150 pa visiem selektiem un tas vairs nav traģiski.
andrisp Posted December 20, 2006 Report Posted December 20, 2006 (edited) Bet kāds sakars datiem ar javacscript ? Datus taču varēji pārsūtīt xml, csv vai json formātā. Edited December 20, 2006 by andrisp
black Posted December 20, 2006 Report Posted December 20, 2006 Uztaisi, lai requests atgriez tiiru javascript (bez HTML script tagiem, utt.) un tad javascript pusee izsauc eval() funkciju, kas to atgriezto javaskriptu izpildiis. Ja datu tieshaam daudz, ar XML labaak netaisi - XML daudzos browseros bremzee. Ja beigaas izdomaa, ka gribi JSON, tad tas neko iipashi daudz nebremzees - JSON datus taapat kodee js array formaataa. Let the Force be with you, master Jeddai.
bubu Posted December 20, 2006 Report Posted December 20, 2006 Neklausi black, un nekad nelieto eval. Nevajag. Atgriez datus, kurus apstrādā ar JS funkciju klienta pusē. Kāds sakars tur ar JS, ko gribi sūtīt?
andrisp Posted December 20, 2006 Report Posted December 20, 2006 Es ieteiktu izmantot JSON. Nav daudz lieku datu, viegli apstrādāt (diemžēl, eval gan būs jāizmanto).
Kaitnieks Posted December 20, 2006 Report Posted December 20, 2006 Ja lieto prototype, tad norādi evalScripts = true var myAjax = new Ajax.Updater( { success: divname }, url, { method: 'get', parameters: pars, evalScripts: true, onFailure: reportAjaxError }); Preteejaa gadiijumaa, neskatoties uz "eval nevajag" bljaaveejiem, jaalieto eval. Prototype to dara apmeeram taa: no servera atgrieztajam html izmet laukaa visus <script> tagus un rezultaatu ievieto attieciigaa elementa innerHTMLā. Pēc tam paņem to, kas <script> tagu iekšā un izpilda šādā veidā: setTimeout(function() {content.evalScripts()}, 10);
bubu Posted December 20, 2006 Report Posted December 20, 2006 Piedodiet man, bet es uzskatu, ka lietot eval ir slimi. Tas tikai parāda, ka programmētājam slinkums rakstīt kvalitatīvu kodu, bet šis labāk tikai uzraksta, ka tik strādā. Un tad citam nabagam, kuram tas kods jāuztur, ir jāmeklē n-tās vietās, kur tas eval-ētais kods tiek saģenerēts.
black Posted December 21, 2006 Report Posted December 21, 2006 Tas JSON parseris, kas pieejams no json.org arī izmanto eval(). Nu tad secinām, ka tie, kas taisīja JSON ir slimi, es esmu slims, Kaitniekam arī problēmas ar veselību, un vienīgais veselais te ir bubu. (No pun intended)
Recommended Posts