AJAXove nacitenie sablony so scriptom
- Gaprielko
- Člen | 42
Zdravim,
mam sablonu:
nejaky text ..
<script type="text/javascript">
nejaky js script
</script>
pri normalnom nacitani stranky sa mi nacita ok, avsak ak ju chcem nacitat AJAXom, tak mi vlozi len:
nejaky text ..
a dany script sa vobec nevlozi do stranky. Ako zabezpecim, aby sa mi vkladal aj dany script do stranky? Vdaka.
- Gaprielko
- Člen | 42
No je tam samozrejme zmysluplny js. Snazim sa tak nacitat TinyMCE editor, t.j. AJAXovym requestom chcem prepnut medzi editaciou stranky a jej klasickym zobrazovanim.. konkretne nacitavam toto:
.. text ..
<script type="text/javascript" src="{$baseUri}/modules/pages/TinyMCE/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "specific_textareas",
editor_selector : "mceEditor",
theme : "advanced",
...
});
</script>
no nacita mi len
.. text ..
- Gaprielko
- Člen | 42
tak este stale riesim problem s nacitavanim js cez ajax .. ak AJAXom nacitam sablonu kde mam
<script type="text/javascript" src="{$baseUri}/modules/pages/TinyMCE/tiny_mce.js"></script>
tak editor nespustim.. skusal som to teda takto, ze som v sablone zavolal js funkciu pre load js suboru
sablona
<script>
loadScript("{$baseUri}/modules/pages/TinyMCE/tiny_mce.js", function() {
tinyMCE.init({
...
...
} );
</script>
kde loadScript
je takyto
<script>
function loadScript(url, callback){
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function(){
callback();
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
</script>
pri neAJAXovom renderovani sablony mi js subor nacitalo a po nacitani sa zavolal aj callback na zobrazenie editora, avsak pri AJAXovom renderovani to stale neide.. callback akoby sa nezavolal..
okrem toho som zistil, ze ked si AJAXovo prepinam medzi formularom pre
editovanie textu stranky a klasickym zobrazenim stranky, tak po AJAXovom dotaze
mi nefunguje ani liveFormValidacia
a pritom prislusne js je stale
nacitane v hlavicke..
vie niekto poradit co s tym?
- Gaprielko
- Člen | 42
mne je jasne, ze ten script musim nanovo inicializovat.. ale ako to vravim, inicializacia sa mi vykona len pri neAJAXovom reqeste..
teraz skusam v sablone toto:
<script type="text/javascript"
id="tiny_mce_script"
src="http://..path../tiny_mce.js">
</script>
<script type="text/javascript">
jQuery(function($) {
$('#tiny_mce_script').load(function(){
alert('tiny loading') ;
..
});
});
</script>
pricom pomocou jQuery chcem na load daneho scriptu inicializovat editor.. pri
neAJAXe to ide, s AJAXom mi ani dany element s id tiny_mce_script
nenajde.. akoby neexistoval
- Elijen
- Člen | 171
Neni to tim, ze prohlizec AJAXem nacitany inline script vubec nespusti? Trochu jsem googlil a podle vseho bud misis pouzit eval na vnitrek tagu script nebo dat javascript do externiho souboru a nacist ho zvlast (treba pomoci jQuery.getScript())