Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z innerHTML.replace
Forum PHP.pl > Forum > XML, AJAX
kowalcook
mam taki oto kod


  1. document.getElementById('id').innerHTML = document.getElementById('id').innerHTML.replace('\n','<br>').replace('biggrin.gif','<img src=\"smiles/icon_biggrin.gif\" border=\"0\" alt=\"Szczęśliwy\" title=\"Szczęśliwy\" style=\"margin-bottom:-6px;\" />')



mam sobie taki oto wycinek funkcji

powinno
zamieniać wartości znaku wejściowego na wyjściowe..., to robi poprawnie lecz gdy podaje w jednym polu kilka razy tą samą wartość już nie działa

  1. :
  2. przykład:
  3. znak biggrin.gif ma zamienić na grafikę i to robi, ale jak dam biggrin.gif biggrin.gif to pierwszą wartość zamieni prawidłowo a drugiej już nie ruszy, dlaczego ?



drugi problem to jak daje wartości dla replase łamania linii \n jak wpisałem powyżej to skrypt się wiesza i nie działa jakby nie trawił znaku \

próbowałem na wiele sposobów


'\n'
\n
/\n/g
'/\n/g'


i nic nie działa czy ktoś moze mi powiedzieć co mu tam nie pasuje ?
tiraeth
Łamanie linii:
Kod
document.getElementById('id').innerHTML = document.getElementById('id').innerHTML.replace(/\n/g, '<br />');

Także wyrażenia regularne. Nawet podałeś w sposobach... Problem może polegać na tym, że możesz mieć windowsowy lub macowy znak końca linii (\r\n lub \r). A wieszać się nie powinno. U mnie to działa.

Zastępowanie wielu wyrażeń:
Kod
document.getElementById('id').innerHTML = document.getElementById('id').innerHTML.replace(/:)/g, ':(');

Należy użyć wyrażenia regularnego z flagą g

http://www.w3schools.com/jsref/jsref_replace.asp
kowalcook
dzieki wielkie za pomoc smile.gif


kwestia dublowania dla replace już załatwiona flaga /g rzeczywiście pomogła





a co do tej łamanej linii to nie mam pojęcia co się dzieje nie tak



może konkretniej już przybliżę jak to robię



wiec mam opcję podglądu edycji w czasie rzeczywistym na forum


czyli z textarea pobiera znaki jakie wpisuje user i przetwarza je w div z przypisanym id w formie texowej



  1. function edycjaOnline(){
  2.  
  3. document.getElementById('poleEdycjiOnline').innerHTML = document.post.text.value
  4. document.getElementById('poleEdycjiOnline').innerHTML = document.getElementById('poleEdycjiOnline').innerHTML.replace(/:D/g,'<img src=\"sciezka/img/smiles/icon_biggrin.gif\" border=\"0\" alt=\"Szczęśliwy\" title=\"Szczęśliwy\" style=\"margin-bottom:-6px;\" />').replace(/\n/g,'<br>')
  5.  
  6. }




no a że się wiesza wiem gdyż gdy dam ten wycinek kodu
  1. .replace(/\n/g,'<br>')

przestają działać wszystkie funkcje java dla tej podstrony
wiec tam musi mieć coś nie tak, chyba że on ma problem że wyczytuje to z pola textarea



jak sądzicie ?










//EDIT


  1. .replace(/\\n/gi, '<br>')



to pomogło smile.gif
czyli dwa backslashe a nie jeden przed łamaniem linii

może sie to komuś przydać smile.gif




dzieki ci za pomoc tiraeth jeszcze raz

pozdrawiam
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.