Cum adaug un cod JS primit AJAX in partea de <head> ?

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Cum adaug un cod JS primit AJAX in partea de <head> ?

Mesajde dechim » Dum Oct 24, 2010 5:54 pm

Deci primesc textul ( xmlHttp.responseText; ) separ din el codul javascript, ce ramane afisez in pagina si as vrea sa pun codul JS in head-ul paginii curente.
Este vorba de o functie de care se va folosi codul HTML care a venit odata cu ea.
De exemplu, "responseText" arata asa:

Cod: Selectaţi tot

<input tipe="text" onblur="return verifica();" /><script type="text/javascript">function verifica() { ..... }</script>

Orice alta idee de a face functional exemplul este bine venita, exclus sa incarc functia de la inceput



nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Mesajde nevvermind » Dum Oct 24, 2010 6:10 pm


dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Oct 25, 2010 12:05 am

@nevvermind multumesc
Am facut cateva incercari si asa e nu merge, oricum nu voiam sa schimb continutul intregului tag head

Am incercat asa:
<head>
<script type="text/javascript">
// ajax
</script>
...

*** Verific din pagina cu butonul continutul primului tag <script>
<input type="button" value="Continut tag script" onclick="alert(document.getElementsByTagName('script')[0].innerHTML);" />
si imi afiseaza textul "// ajax"

*** In functia AJAX am pus :
document.getElementsByTagName("script")[0].innerHTML = textScript;

*** Verific cu butonul si e ok mi-a adus codul si l-a pus acolo

*** Cand vreau sa folosesc codul zice "showTest is not defined" semn ca nu vede codul ca sa-l execute.

Mai sap, daca stie cineva il rog frumos ...

[EDIT]
In FF se intampla ca mai sus in IE nu merge nici atat

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Lun Oct 25, 2010 12:37 am

de ce vrei neaparat in head? nu ruleaza si in body?

inceaarca sa preiei doar codul js si sa il executi cu eval sau ceva de gen (fara tagurile script type..)
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Oct 25, 2010 12:59 am

Am facut cu eval dar vreau sa apelez functia adusa cu AJAX mai tarziu iar ea nu mai exista atunci.

Cod: Selectaţi tot

var headID = document.getElementsByTagName("head")[0];         
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.innerHTML = textScript;
headID.appendChild(newScript);


Am incercat si merge pe FF si nu merge pe IE.
IE zice ca-i eronata linia : newScript.innerHTML = textScript;
daca o inlocuiesc cu :
newScript.src = "http://..../test.js";
merge pe ambele.

Se pot incarca astfel librarii JS dinamic fara request la pagina. Tot e o treaba buna.
Sunt curios daca merge sa schimb un script extern cu altul, asa cum merge cu CSS-ul.

lorand1
Average Member
Mesaje: 108
Membru din: Vin Apr 25, 2008 7:44 pm
Localitate: Baia Mare

Mesajde lorand1 » Lun Oct 25, 2010 1:14 am

in ie incearca cu o conditie de genul
newScript.innerHTML = textScript || newScript.createRange().pasteHTML(textScript);

la eval() ma gandeam si eu ca este solutia acum imi fac si eu o proba
Oamenii normali nu stiu ca totul e posibil. David Rousset
Nu am vreo insusire speciala, ci sunt numai un pasionat curios. Albert Einstein

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Oct 25, 2010 1:18 am

Tot eroare in IE

lorand1
Average Member
Mesaje: 108
Membru din: Vin Apr 25, 2008 7:44 pm
Localitate: Baia Mare

Mesajde lorand1 » Lun Oct 25, 2010 1:32 am

pt ie
newScript.innerText = textScript;

asta tre sa mearga inafara de ie8 dupa cum am inteles acolo deja se foloseste innerHTML
Oamenii normali nu stiu ca totul e posibil. David Rousset

Nu am vreo insusire speciala, ci sunt numai un pasionat curios. Albert Einstein

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Mesajde Birkoff » Lun Oct 25, 2010 1:39 am

atentie la cache-ul pe care il face ie... cand trimiti sirul prin ajax de preferat e sa adaugi la sfarsit un numar MATH random ca sa fortezi ie sa reciteasca totul nu sa ia din cache... iar la preluarea din js separi codul de acel nr...
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Oct 25, 2010 2:08 am

@Birkoff, am variabila random in functie pusa, nu stiu cum sa-l faca sa stearga cache-ul fara sa-l sterg eu manual: Tools->Options->Delete ...
Parca avea o optiune IE

@lorand1 - nu merge, tot eroare...
Am inspectat obiectul folosind :

Cod: Selectaţi tot

var x = document.getElementsByTagName("script")[0];
for (var i=0 in x) {
alert(i);
alert(x[i]);
}

si am vazut ca in IE are o proprietate contentIsEditable (parca asa!) care este setata pe false. In conditiile astea cred ca nu se poate face nimic. Pacat, ca pe FF merge.
Va multumesc pentru ajutor

[edit]
@Birkoff, am gasit setarea, era tot acolo (tools->option->setting)

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Lun Oct 25, 2010 2:29 am

wow!
Cand ma pregateam sa abandonez am gasit aici.
Am verificat si merge pe IE si FF

Cod: Selectaţi tot

  var headID = document.getElementsByTagName("head")[0];         
  var newScript = document.createElement('script');
  newScript.type = 'text/javascript';
  newScript.text = textScript;
  headID.appendChild(newScript);

Nu stiu ce-i cu chestia aia (contentIsEditable) care ma descurajase.


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 17 vizitatori