Jump to content
php.lv forumi

Javaskripts ajax izsauktajā blokā


Valcha

Recommended Posts

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..

Link to comment
Share on other sites

  • Replies 32
  • Created
  • Last Reply

Top Posters In This Topic

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.

Link to comment
Share on other sites

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).

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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);

Link to comment
Share on other sites

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.

Link to comment
Share on other sites


×
×
  • Create New...