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]
heb je ergens een voorbeeldje online staan?
Zou je niet even kunnen spieken bij hyves dan? Ik weet ook niet zo 123 een oplossing
PHP Newbie schreef op 20.11.2006 15:55
heb je ergens een voorbeeldje online staan?


Voorbeeldje staat ondertussen online.

http://phphulp.robertdeiman.net/preview.php


Overigens heb ik ook uitgevonden waarom ik aanvankelijk dacht dat het niet werkte in IE. Want in de IE tab, werkt het niet, maar gewoon in IE werkt het prima.

En bij Hyves gaat het een beetje anders blijkbaar, want ik kan daar die hele previewbox niet terug zien in de bron
Bij je script wordt alleen de eerste smiley een 'echte' smiley in ff 2.0
Using Regular Expressions with JavaScript and ECMAScript:
In JavaScript, a regular expression is written in the form of /pattern/modifiers where "pattern" is the regular expression itself, and "modifiers" are a series of characters indicating various options. The "modifiers" part is optional. This syntax is borrowed from Perl. JavaScript supports the following modifiers, a subset of those supported by Perl:

/g enables "global" matching. When using the replace() method, specify this modifier to replace all matches, rather than only the first one.
volgens mij werkt document.getElementsByID niet in IE, of ligt dat aan mij?

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


Ik gebruikt de functie nu zo, maar hij doet het niet. Of ik snap de bedoeling/ werking van die /g verkeerd, of er is wat anders.


Bij mij werkt die prima in IE Peter :)
Robert schreef op 20.11.2006 16:27


Overigens heb ik ook uitgevonden waarom ik aanvankelijk dacht dat het niet werkte in IE. Want in de IE tab, werkt het niet, maar gewoon in IE werkt het prima.

En bij Hyves gaat het een beetje anders blijkbaar, want ik kan daar die hele previewbox niet terug zien in de bron


IE-tab geeft IE7 dacht ik en misschien werk je zelf nog met IE 6 of zo.

In de IE-tab werkt het helemaal niet bij me en in IE7 gebeurt hetzelfde als in FF

[edit]
Is het niet mogelijk een plaatje ook via deze manier in een textarea te zetten?
[/edit]
PHP Newbie schreef op 20.11.2006 17:53
[quote='Robert schreef op 20.11.2006 16:27']

Overigens heb ik ook uitgevonden waarom ik aanvankelijk dacht dat het niet werkte in IE. Want in de IE tab, werkt het niet, maar gewoon in IE werkt het prima.

En bij Hyves gaat het een beetje anders blijkbaar, want ik kan daar die hele previewbox niet terug zien in de bron


IE-tab geeft IE7 dacht ik en misschien werk je zelf nog met IE 6 of zo.

In de IE-tab werkt het helemaal niet bij me en in IE7 gebeurt hetzelfde als in FF

[edit]
Is het niet mogelijk een plaatje ook via deze manier in een textarea te zetten?
[/edit][/quote]

IE tab geeft de browser die je zelf gebruikt (kijk maar in de opties, daar kan je de locatie van IE aangeven, en die staat gewoon op je computer)
In FF en IE werkt het beiden prima, op het replace-all gedeelte na.

IE6 doet ook hetzelfde als FF.
Er zit een fout in de voorbeeld pagina :)


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


moet dit zijn:


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


gr, tim

Reageren