Comunitatea PHP Romania
MightyDeals

Prima pagină Web Librarii Javascript Cum adaug un cod JS primit AJAX in partea de <head> ?

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

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library, Ext, script.aculo.us

dechim Senior Member

Mesaje: 1486
Localitate: Drobeta Turnu Severin
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:
<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

Mesaj Dum Oct 24, 2010 5:10 pm
nevvermind Senior Member

Mesaje: 851
Localitate: Cluj-Napoca

Mesaj Dum Oct 24, 2010 11:05 pm
dechim Senior Member

Mesaje: 1486
Localitate: Drobeta Turnu Severin
@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

Mesaj Dum Oct 24, 2010 11:37 pm
Birkoff Avatar utilizator
Senior Member

Mesaje: 5884
Localitate: Bucuresti

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

Mesaj Dum Oct 24, 2010 11:59 pm
dechim Senior Member

Mesaje: 1486
Localitate: Drobeta Turnu Severin
Am facut cu eval dar vreau sa apelez functia adusa cu AJAX mai tarziu iar ea nu mai exista atunci.

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.

Mesaj Lun Oct 25, 2010 12:14 am
lorand1 Average Member

Mesaje: 108
Localitate: Baia Mare
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

Mesaj Lun Oct 25, 2010 12:18 am
dechim Senior Member

Mesaje: 1486
Localitate: Drobeta Turnu Severin
Tot eroare in IE

Mesaj Lun Oct 25, 2010 12:32 am
lorand1 Average Member

Mesaje: 108
Localitate: Baia Mare
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

Mesaj Lun Oct 25, 2010 12:39 am
Birkoff Avatar utilizator
Senior Member

Mesaje: 5884
Localitate: Bucuresti

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

Mesaj Lun Oct 25, 2010 1:08 am
dechim Senior Member

Mesaje: 1486
Localitate: Drobeta Turnu Severin
@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 :
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)

Mesaj Lun Oct 25, 2010 1:29 am
dechim Senior Member

Mesaje: 1486
Localitate: Drobeta Turnu Severin
wow!
Cand ma pregateam sa abandonez am gasit aici.
Am verificat si merge pe IE si FF
  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.

Mesaj Dum Apr 14, 2013 12:55 am
Google Bot New Member

Mesaje: 1

Înapoi la Librarii Javascript

Copyright © 2001-2013 PHP Romania Gazduire web | Haine online | Gazduire web | Campanii SMS | Gazduire Claus Web | Inregistrare Domenii | Anunturi | Jocuri cu bile
Furnizat de phpBB® Forum Software © phpBB Group
Translation/Traducere: phpBB România
Powered by Simplis