Alternatief voor innerHTML werkend proberen te krijgen
<script type="text/javascript" >
function translatepage() {
var basiswoorden = new Array('Reisgegevens', 'Parkeerplaatsen', 'Overdekt parkeren');
var vertaling = new Array('Travel Information', 'Parking places', 'Indoor parking');
var myBox = document.getElementById("reserveerpagina").firstChild.nodeValue;
for (var ilq=0; ilq<basiswoorden.length; ilq++) {
///document.body.innerHTML = document.body.innerHTML.replace(basiswoorden[ilq],vertaling[ilq]);
document.getElementById('reserveerpagina').firstChild.nodeValue = document.getElementById('reserveerpagina').firstChild.nodeValue.replace(basiswoorden[ilq],vertaling[ilq]);
}
}
function start() {
translatepage();
Initialise();
}
window.onload = start;
</script >
Het script dient de pagina te laden en de <body> heeft als id <body id="reserveerpagina">
Nu laadt hij de pagina maar wil hij het script niet uitvoeren. Omdat ik een fout gemaakt heb.
Maar nu ben ik een leek met Javascript en dus loopt het een beetje vast:
document.getElementById('reserveerpagina').firstChild.nodeValue = document.getElementById('reserveerpagina').firstChild.nodeValue.replace(basiswoorden[ilq],vertaling[ilq]);
Hier ergens zit het.
Maar via de dom een innerHTML alternatief maken is nogal lastig.
Ziet iemand hier mijn fout?
TIAD :D
Zorg je er wel voor dat de pagina eerst is geladen, en daarna pas de javascript wordt uitgevoerd? Maak anders gebruik van jQuery, werkt met dit soort dingen perfect én crossbrowser.
Heb het nu in Jquery proberen op te zetten.
Met één enkel item wil het wel lukken.
Maar met meedere helaas niet.
Dus in een array.
Dit is zoals ik het tot zover heb.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var invoer = ['Pietje','Puk', 'John'];
var uitvoer = ['Pietje Bel', 'Pietje Puk', 'John Doe'];
var replace_str = $('body').html().replace(invoer,uitvoer);
$('body').html(replace_str);
});
</script>
</head>
<body>
<p>Pietje</p>
<p>Puk</p>
<p>John</p>
</body>
</html>
Ik wil dus dat array invoer ingelezen wordt en overal waar de waarden uit de array invoer worden tegengekomen dat die vervangen worden door de waarden van de array uitvoer.
Nu ben ik vrij zwak met Javascript. Om dat te ondervangen heb ik veel gegoogled. Maar nergens kom ik echt een bevredigend antwoord tegen.
Dus ik hoop dat iemand hier mijn fout ziet.
Alvast heel erg bedankt!
Gewijzigd op 22/05/2012 11:37:42 door Alex Hakkenberg