Hallo,
ich habe ein kleines Problem bei dem ich leider nicht weiter komme.
Ich benutze auf meiner Seite den GoogleTranslation Script um sie ggf. übersetzen zu lassen. Dies funktioniert auch ohne Probleme, jedoch bremst dieses Feature meine Seite beim Laden bzw. Navigieren sehr aus.
Ich hatte also die Idee dieses Tool nur bei Bedarf über einen Link nachzuladen und nicht per default anzuzeigen. Und dies funktioniert eben leider nur bedingt.
D.h. der JS wird zwar ordnungsgemäß in den DIV nachgeladen, aber nicht ausgeführt wie es scheint.
Hat jemand eine Idee woran das liegen könnte? Hier der Aufruf zum einbinden..... PHP-Code:
<div style='width: 200px; height: 50px;' id='Translate'>
<a href='#' onclick='DoXmlHttpRequest('includes/translate.php', 'Translate')'><span>Change Language</span></a>
</div>
Hier der JS... (von google vorgegeben) aus "translate.php" PHP-Code:
echo "<div style='margin-right: 10px;' id='google_translate_element'></div>
<script>function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'de',
autoDisplay: false,
}, 'google_translate_element');
}
</script>
<script src='//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'></script>";
Hier mein JS zum Nachladen.... PHP-Code:
var request = null;
var div = null;
function DoXmlHttpRequest(url, div)
{
request = createRequest();
request.onreadystatechange = function()
{
switch(request.readyState)
{
case 0:
case 1:
case 2:
case 3: return;
case 4: var out = request.responseText; break;
}
document.getElementById(div).innerHTML = out;
}
request.open("GET", url, true);
request.send(null);
}
function createRequest()
{
try
{
var request = new XMLHttpRequest();
}
catch(ex)
{
try
{
var request = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(ex)
{
var request = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return request;
}
Gruß,
André