ďťż

[JS] Podgląd tekstu z emotikonami WHILE zapętla się w Operze

       

Podstrony


telcocafe

Kod http://www.unit1.pl/pb-934 (linia 36) w przeglądarce Firefox działa poprawnie, lecz w Operze pętla WHILE zapętla się. Dlaczego? Po prostu emots[i][0] zawiera `:)`. Opera aktualizuje ciąg znaków `text`, w którym poszukiwany znak pojawia się kolejny raz i tak w koło Macieju. Metoda indexOf() zwraca coraz większą wartość.

Można to zrobić, używając wyrażeń regularnych. Może są jeszcze lepsze sposoby, aby zamienić WSZYSTKIE wystąpienia tekstowych emotikon na graficzne emotikonki?



Prototype? znacznie lepiej użyć jQuery, do tego ograniczać stosowanie JS na stronie do minimum. Dlaczego chcesz zmieniać emotikony za pomocą JS, a nie po stronie serwera, gdzie to najłatwiej i najpewniej zrobić? Swego czasu używałem: http://markitup.jaysalvat.com/home/
Użytkownik Riklaunim edytował ten post 06 grudzień 2008, 16:17
:-D A co zawiera przykładowa tablica emots? :-D Bo ja widzę, że Opera wszystko dobrze robi - zamienia wystąpienia w tekście, a co masz w title? :-D

To jest część klasy edytora Editor. Nie korzystam z bibkioteki Prototype. Przykładowa zawartość zmiennej emots:
var emots=[[":)","smile.png",":)"],[":D" ,"happy.png",":D"],[":(","unhappy.png",":( "],[":O","surprised.png",":O"],[":P"," tongue.png",":P"],[":]","waii.png",":]" ]]Dynamiczny podgląd pozwala szybciej i efektywniej redagować artykuły, newsy... bez dodatkowych żądań do serwera.
Użytkownik Ferrari edytował ten post 06 grudzień 2008, 17:21


Mhm... Czyli wszystko w Operze jest dobrze. Zapętlasz w nieskończoność swój warunek. Przecież podstawiasz wciąż emotkę, którą zamieniasz. Musisz to jakoś zmienić (na przykład zamieniając jakiś znak na encję) i wszystko będzie dobrze.

No tak... Wystarczyło tylko usunąć atrybut title, który w podglądzie jest zbędny.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.