Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problemy z tinymce ładowany przez ajax
Forum PHP.pl > Forum > Po stronie przeglądarki
nospor
Hej, uzywam starego tinymce 3. Mam taki kod do inicjalizacji tinymce
Kod
jQuery('#idtextarea').tinymce({
//tu standardowe parametry
});

Gdy robie to w normalnym żądaniu, wszystko dziala ok. Mogę w ten sposob zamienic wiele textarea i wszystko jest ok.
Gdy jednak ten kod zostanie pobrany ajaxem i wstawiony do DIVa, to zadziala tylko raz. Za drugim razem, stworzy się kontrolka tinymce ale już bez tresci jaka była w textarea. A gdy probuje usunac te kontrolke nadpisujac inną treścią, dostaje blad NS_ERROR_UNEXPECTED: i wskazuje na totalnie zupelnie nie związaną linijke.''

Najlepsze jest to, że pare miesiecy temu to dzialało. Od tamtego czasu jedynie co się zmienilo to wersje przeglądarki (Firefox). Szukalem w necie, niby ludzie mają podobne problemy, ale nie udalo mi się nic z tamtych tematow wyciągnąć.

Próbowałem też zainstalować najnowszą wersje tinymce, ale problemy były podobne.

Miał ktoś kiedyś podobne problemy i może coś doradzic?
trueblue
Masz na myśli sytuację kiedy na danym polu textarea zostaje przypięty TinyMCE po żądaniu ajaxowym, a przy kolejnym żądaniu ajaxowym i inicjalizacji TinyMCE na tym polu występuje błąd?
nospor
Nie do konca. Pole textarea oraz kod js inicjalizujący tincemce na tym polu textarea są pobierane ajaxem a nastepnie wstawiane w div, cos takiego:

$('#jakisdiv').html(kod);
gdzie zmienna 'kod' zawiera kod html z kodem js.
trueblue
Spróbowałbym odpinać TinyMCE od pola przed kolejnym żądaniem ajaxa.
http://stackoverflow.com/a/4655467
nospor
Ale czemu mam odpinac od pola?
Ajaxem dodaje nowe pole i tinymce chce podpiac pod kolejne pole stare pozostawiajac bez zmian
trueblue
Myślałem, że żądanie ajaxowe ładuje ten sam html/to samo pole.
Ale nie ładuje.

Może inne rozwiązanie. Inicjalizacja TinyMCE poza ajaxem, dodawanie (mceAddControl) do pól w ajaxie.
nospor
Wyrzucilem inicjalizacje tinymce z ajaxa. Ajax zwraca mi sam kod html textarea.
Inicjalizacje konkretnego textarea z konkretnym ID wrzucilem do funkcji. Zapodaje sie do niej jako parametr ID i sru. Po zalodowaniu ajaxem kilku textarea, odpalilem w konsoli recznie funkcje z zadanymi ID - dziala
Dodalem automatycznie odpalanie funkcji w kodzie js dolaczanym z textarea - znowu nie dziala. Pierwsze tinymce sie pieknie zaladuje, reszta jak poprzednio.
trueblue
Jak inicjalizujesz TinyMCE?
Mam na myśli parametry.
nospor
Kod
        jQuery('#id').tinymce({
script_url : 'sciezka/scripts/tinymce/jscripts/tiny_mce/tiny_mce.js',
mode : "exact",
elements : "id",
theme : "advanced",
plugins : "save,preview",
theme_advanced_buttons1 : "saveandback,save,newdocument,|,bold,italic,underline,strikethrough,|,justify
left,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,f
ontsizeselect",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_buttons4 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
theme_advanced_path : false,

template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js"
});



Zrobilem teraz jeszcze eksperyment i kod wywolujacy funkcje z inicjalizacją tinymce wywalilem z kodu razem z textarea wczytywanego ajaxem. Odpalam go w js po zaladowaniu ajaxa - oczywiscie wowczas wszystko dziala. Problemem wiec jest zapewne to:
$('#jakisdiv').html(kod);
jako 'kod' nie moze siedziec js inicjalizujacy tinymce... Musi byc tak
$('#jakisdiv').html(kodbezjs);
funkcja();

Troche dziwne, tym bardziej ze jak juz pisalem, wczesniej to dzialalo... No ale jak sie nie da inaczej, to zostawie tak, ale srednio mi sie to podoba.
trueblue
A co w tym złego, skoro mniej danych jest przesyłanych w żądaniu, tym bardziej, że konfiguracja edytora, jak domniemam, jest taka sama dla każdego pola.
Obecnie parametr mode powinien być ustawiony na none, elements brak, a przypinanie edytora do pola, tak jak wcześniej podałem poprzez mceAddControl (tinyMCE.execCommand("mceAddControl",true,"id_pola")).
nospor
Cytat
A co w tym złego, skoro mniej danych jest przesyłanych w żądaniu
ładuję rozne rodzaje pol. textarea z tinymce to tylko jedno z typow. Gdy wszystko jest w ajaxie, nie musze sie martwic o zadne dodatkowe sprawdzanie typu i ladowania dodatkowych akcji w zaleznosci od pola. Kazde pole ajaxem dostarcza wszystko co mu jest potrzebne. Teraz, spowodu durnego bledu FF, musze inicjalizacje pola prowadzic w dwoch odrebnych miejscach - to w tym jest wlasnie zlego.

Nie mniej jednak dzieki za pomoc. Z jakiegos powodu juz Twoj pierwszy post dal mi wskazowke smile.gif
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.