Computer/JavaScript

동적으로 자바스크립트 로드하기

알찬돌삐 2012. 8. 10. 16:34

 http://www.developpez.net/forums/archive/index.php/t-158898.html

 

 function innerHTMLJS(obj,content)
{
/* Copyleft by GourouLubrik 2006 */
if(typeof(obj) != 'object' && typeof(content) != 'string') return;
obj.innerHTML = content;

var scripts = obj.getElementsByTagName('script');
if(scripts == false) return true; // no node script == no problem !
for (var i=0;i<scripts.length;i++)
{
var scriptclone = document.createElement('script');
if(scripts[i].attributes.length > 0) /* boucle de copie des attributs du script dans le nouveau node */
{
for (var j in scripts[i].attributes)
{
if(typeof(scripts[i].attributes[j]) != 'undefined'
&& typeof(scripts[i].attributes[j].nodeName) != 'undefined' /* IE needs it */
&& scripts[i].attributes[j].nodeValue != null
&& scripts[i].attributes[j].nodeValue != '' /* IE needs it ou il copie des nodes vides */)
{
scriptclone.setAttribute(scripts[i].attributes[j].nodeName,scripts[i].attributes[j].nodeValue);
}
}
}
scriptclone.text = scripts[i].text; // on copie le corp du script
/*
la j'ai pas compris, si je ne return pas sous opera ici : le javascript s'execute 2 fois -
mais la : le script s'execute mais n'est pas a ce moment la placé entre les balises scripts !
et si je return juste après le innerHTML, le script n'est pas executé... ---o(<
*/
if (navigator.userAgent.indexOf("Opera")>0) { return; }
/* on force le remplacement du node par dom, qui a pour effet de forcer le parsing du javascript */
scripts[i].parentNode.replaceChild(scriptclone,scripts[i]);
}
return true;
}


A propos d'ajax, pour tous les adeptes de PHP je conseille très vivement le script disponible sur http://www.hemmady.com/ajaxagent
je ne mets pas le reste de mon contenu php/js car il se base sur cette librairie.
Elle est absolument géniale, et la découverte de JSON est un bonheur pour convertir les objets PHP en javascript.
PS: Ne pas oublier de str_replace("\"","\\\"") vos contenus JSON sous peine de plantage instantané de votre navigateur =).

이 글은 스프링노트에서 작성되었습니다.

.

'Computer > JavaScript' 카테고리의 다른 글

자동완성  (0) 2012.08.10
바코드그리기  (0) 2012.08.10
동적으로 js 로딩  (0) 2012.08.10
Rowspantable  (0) 2012.08.10
Ctrl F 를 웹에서 구현  (0) 2012.08.10