Ik post deze vraag maar even in de koffiehoek, omdat ik geen idee heb waar het anders zou moeten/ kunnen.

Ik heb een pagina gemaakt, waarbij ik in een tekstfield tekst kan typen, en daaronder komt dan een voorbeeld te staan van de tekst die je hebt getypt (later wordt dit nog iets anders, maar zo kan ik even zien hoe het werkt)

Nu zit ik met het volgende probleem:
Ik wil als ik bijvoorbeeld :) type, dat die een plaatje laat zien genaamd "smile.gif". Nu wil het geval dat alleen de 1e keer dat :) voorkomt in de tekst, wordt vervangen, maar de daaropvolgende niet. is er niet een replace_all functie voor javascript? (kan het in ieder geval niet vinden met google of op w3schools)


Hiervoor gebruik ik de volgende code:

function WriteTekst(){
	var doel = document.getElementById("testdiv");
	var bron = document.getElementById("testfield").value;
	bron = bron.replace(":)","<img src=\"blij.gif\"/>");
	
	doel.innerHTML = bron;
	//print bron;
	}


Nu wil het geval dat deze functie niet werkt in IE (dat kan ik denk ik zelf nog wel oplossen) maar het eigenlijke probleem en mijn eigenlijke vraag is of het ook mogelijk is dat alle keren dat er :) staat, ook daadwerkelijk de smiley weer wordt gegeven.

(uit eindelijk wordt het zoiets als de "preview" functie bij hyves, waarvan ik aanneem dat jullie die kennen)


PS. Ik weet dat het geen PHP vraag is, maar er zitten ook genoeg JavaScripters hier, vandaar.

[edit]
Oké, volgende keer zet ik een JS vraag in WebDesign neer.

Overigens werkt het nu plotseling wel in IE, dus daarvoor graag geen oplossingen meer aandragen :)
[/edit]
de voorbeeldpagina geeft nu bij mij:

unmatched ) in regular expression
preview.php (line 9)
bron = bron.replace(/:)/g,"<img src=\"blij.gif\"/>");

Betekend dat je even die ) moet escapen:

bron = bron.replace(/:\)/g,"<img src=\"blij.gif\"/>");

[edit]
Dit probleem is nu opgelost, maar is het misschien ook mogelijk om d.m.v. (of eventueel een andere methode) de smiley IN de tekstarea te zetten?
[/edit]
PHP Newbie schreef op 20.11.2006 19:04
de voorbeeldpagina geeft nu bij mij:

unmatched ) in regular expression
preview.php (line 9)
bron = bron.replace(/:)/g,"<img src=\"blij.gif\"/>");

Betekend dat je even die ) moet escapen:

bron = bron.replace(/:\)/g,"<img src=\"blij.gif\"/>");

[edit]
Dit probleem is nu opgelost, maar is het misschien ook mogelijk om d.m.v. (of eventueel een andere methode) de smiley IN de tekstarea te zetten?
[/edit]


Ik zie nog steeds maar 1 keer het plaatje, en voor de rest laat die elke keer de :) gewoon staan, ik snap dus ook nog steeds niet waar het nu aan ligt, en ik ben van alles aan het proberen, maar kom er nog niet uit.
Bij mij werkt hij gewoon, ook jouw voorbeeldpagina doet het hier prima ;-)

Misschien kun je ook deze even toevogen:

bron = bron.replace(/\n/g,"<br />");

nu worden enters in de tekstarea ook echte enters ;-)

[edit]
IE-tab doet het goed, IE7 doet het goed, FF 2 doet het goed en Opera 9 doet het goed.
[/edit]
Oooh... ik was lokaal aan het testen, maar zat de hele tijd de oude versie te testen en die werkte niet..
Schijnbaar deed die het de hele tijd al wel.

Bedankt in ieder geval allemaal.




@PHP Newbie

Bedoel je dat je in de tekstarea de tekst <img src...../> wilt hebben?
Nee, ik wil het plaatje zien in de tekstarea.

dus niet <img src="blij.gif"> maar

Reageren