Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX] Problem z edytorem TinyMCE
Forum PHP.pl > Forum > Przedszkole
przemilke
Witam,

Mam problem z poprawną implementacją edytora TinyMCE na swojej stronie.

W index.php ładuję składnię:
  1. <script type="text/javascript" src="lib/tiny_mce/tiny_mce.js"></script>
  2. <script type="text/javascript">
  3. tinyMCE.init({
  4. mode : "textareas",
  5. theme : "simple",
  6. extended_valid_elements : "img[class=myclass|!src|border:0|alt|title|width|height]",
  7. invalid_elements : "strong,b,em,i"
  8. });


Kiedy w body index.php dodam textarea (jak poniżej), TinyMCE działa poprawnie:
  1. <form method="post" action="somepage">
  2. <textarea id="content" name="content" cols="85" rows="10"></textarea>
  3. </form>


Za pomocą buttona wywołuję ajaxową funkcję prPrzegladajProdukty() (czysty ajax) i ładuje mi się strona pr_produkty_przegladaj.php w ramach index.php (w divie panelcontent, a więc zmierzam do tego, że nagłówek z index.php jest dalej widoczny jak i sekcje script):
  1. function prPrzegladajProdukty()
  2. {
  3. //blokuj();
  4.  
  5. url = "includes/pr_produkty_przegladaj.php";
  6. url = encodeURI(url);
  7. disableButtons = true;
  8. startGETRequest(url, onComplete, prFiltrProdukty, "panelcontent", 1, null);
  9.  
  10. }


Kiedy w body pr_produkty_przegladaj.php dodam textarea nie działa TinyMCE. Pojawia się tylko samo textarea. dry.gif
Nie wiem dlaczego się tak dzieje... Nie znalazłem podobnego problemu w sieci, raczej takie z działaniem submit'a w ajaxie...
Proszę o pomoc
erix
Hmm, a znamy funkcję startGETRequest? Wspominasz coś o identyfikatorach, a w kodzie nic o nich nie ma; tzn. jest co nieco, ale mało wiążące, gdyż to sama nazwa parametru.
przemilke
Dzięki, za sugestię, ale niestety nie zrozumiałem do końca Twojego przesłania. Czy muszę uzupełnić funkcję startGETRequest?

  1. function startGETRequest(url, onComplete, onEnd, content, parametronend, komunikat)
  2. {
  3. var XMLHttpRequestObject = getXMLHttpRequestObject();
  4. if(XMLHttpRequestObject){
  5. XMLHttpRequestObject.open("GET", url);
  6. XMLHttpRequestObject.onreadystatechange = function()
  7. {
  8. if (XMLHttpRequestObject.readyState == 4){
  9. if(XMLHttpRequestObject.status == 200){
  10. var responseXML = XMLHttpRequestObject.responseXML;
  11. var responseText = XMLHttpRequestObject.responseText;
  12. if(content == null && komunikat ==null)
  13. onComplete(responseText, responseXML);
  14. else
  15. onComplete(responseText, responseXML, content, komunikat);
  16.  
  17. }
  18. delete XMLHttpRequestObject;
  19. if(parametronend == null)
  20. onEnd();
  21. else
  22. onEnd(parametronend);
  23. }
  24. }
  25. XMLHttpRequestObject.send(null);
  26. }
  27. }


Funkcja określa mi jedynie miejsce ładowania strony pr_produkty_przegladaj.php w obrębie index.php, dokładnie w tym miejscu (index.php):
  1. <div id="panelcontent" >
  2.  
  3. </div>


Czy to w ogóle ma jakieś powiązanie? blinksmiley.gif
erix
Nie, chodziło mi o cały kod. Skąd pobierasz wszystkie zmienne przy wywołaniu tej funkcji?
franki01
Z inicjacji tinyMCE zrób funkcję:
  1. <script type="text/javascript" src="lib/tiny_mce/tiny_mce.js"></script>
  2. <script type="text/javascript">
  3. function init_tinyMCE()
  4. {
  5. tinyMCE.init({
  6. mode : "textareas",
  7. theme : "simple",
  8. extended_valid_elements : "img[class=myclass|!src|border:0|alt|title|width|height]",
  9. invalid_elements : "strong,b,em,i"
  10. });
  11. }
  12. init_tinyMCE();


W startGETRequest() rozumiem, że drugi parametr to callback?

  1. function prPrzegladajProdukty()
  2. {
  3. //blokuj();
  4.  
  5. url = "includes/pr_produkty_przegladaj.php";
  6. url = encodeURI(url);
  7. disableButtons = true;
  8. startGETRequest(url, function(p1, p2, p3, p4) { init_tinyMCE(); }, prFiltrProdukty, "panelcontent", 1, null);
  9.  
  10. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.