AJAXove nacitenie sablony so scriptom

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Gaprielko
Člen | 42
+
0
-

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.

Ot@s
Backer | 476
+
0
-

Obsahem tagu <script type="text/javascript">alert('test')</script> musí být smysluplný javascript a né plaintext (s tím kompiler JS nic nenadělá).

Nox
Člen | 378
+
0
-

To Gaprielko očividně podle jiného vlákna ví a navíc by tu šlo o „nejaky js script“ ne „nejaky text ..“, ale co s tím nevím, myslel bych, že to bude fungovat

Gaprielko
Člen | 42
+
0
-

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 ..
22
Člen | 1478
+
0
-

no a není potřeba jaksi zavolat funkci tinyMCE.init po tom AJAXu?

Gaprielko
Člen | 42
+
0
-

uz viem kde je problem, tiny_mce.js sa mi nenacita.. ak

<script type="text/javascript" src="{$baseUri}/modules/pages/TinyMCE/tiny_mce.js"></script>

vlozim mimo AJAXom nacitavanej sablony, tak to ide tak, ako ma..

Gaprielko
Člen | 42
+
0
-

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?

22
Člen | 1478
+
0
-

už jsem to tu jednou psal, musíš znovu inicializovat ty scripty v ajax success. Pročti forum, řešeno už mockrát tady + dokumentace k TinyMCE.

Editoval 22 (4. 2. 2012 9:27)

Gaprielko
Člen | 42
+
0
-

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
+
0
-

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

Gaprielko
Člen | 42
+
0
-

mohol by si mi to upresnit, ako pouzit eval vo vnutri script tagu? akosi si s tym neviem vobec rady.. v javascripte som novacik :)