Ziel: Eine grosse PHP Seite soll nach dem Aufruf auf ein bestimmtes
Element gescrollt werden. Das geht mit JS - element.scrollIntoView().
Das Problem: Javascript onload findet das document (und auch eine form darin)
aber nicht die Elemente.
<!DOCTYPE HTML ....
...
<body onload="javaScriptFunction()">
<script type="text/javascript">
function javaScriptFunction()
{
alert("JS called");
var ele = document.getElementById('SelectID2');
if (ele != null)
{
alert("ele found");
}
ele.scrollIntoView();
}
</script>
<?php
//----------- Hier die PHP Seite -------------------------
.......
//So funktioniert es, die Elemente werden gefunden, called by onchange
echo '<select id="SelectID1".... onchange="javaScriptFunction();" >';
..............
..............
//So wie untenstehend geht es leider nicht, die JS Funktion wird zwar aufgerufen, document gefunden, die Elemente nicht
//dieser Teil direkt vor </body>
echo '<script type="text/javascript">';
echo 'javaScriptFunction();';
echo '</script>';
?>
</body>
Bei einem Aufruf der JS-Funktion aus onchange werden alle Elemente der Seite gefunden.
Ich habe ein Timing Problem vermutet (erst nach Aufbau der PHP Seite sind die ID's bekannt)
und habe deshalb den Aufruf direkt vor </body> gesetzt.
Das löst aber leider das Problem nicht.
Ein weiterer Versuch mit onload:
Die Funktion wird nach dem Seitenaufbau aufgerufen. document wird gefunden, form wird gefunden,
values innerhalb der Form auch, aber nicht die Elemente mit den ID's 'SelectID1' 'SelectID2' 'SelectID3' .............
Kann mir jemand weiterhelfen? Danke für eure Unterstützung.
Problem hat sich nach langem (stunden-tagelangem) Probieren von selbst gelöst, Ursache unbekannt.
Sorry für ins Netz stellen.
Element gescrollt werden. Das geht mit JS - element.scrollIntoView().
Das Problem: Javascript onload findet das document (und auch eine form darin)
aber nicht die Elemente.
<!DOCTYPE HTML ....
...
<body onload="javaScriptFunction()">
<script type="text/javascript">
function javaScriptFunction()
{
alert("JS called");
var ele = document.getElementById('SelectID2');
if (ele != null)
{
alert("ele found");
}
ele.scrollIntoView();
}
</script>
<?php
//----------- Hier die PHP Seite -------------------------
.......
//So funktioniert es, die Elemente werden gefunden, called by onchange
echo '<select id="SelectID1".... onchange="javaScriptFunction();" >';
..............
..............
//So wie untenstehend geht es leider nicht, die JS Funktion wird zwar aufgerufen, document gefunden, die Elemente nicht
//dieser Teil direkt vor </body>
echo '<script type="text/javascript">';
echo 'javaScriptFunction();';
echo '</script>';
?>
</body>
Ich habe ein Timing Problem vermutet (erst nach Aufbau der PHP Seite sind die ID's bekannt)
und habe deshalb den Aufruf direkt vor </body> gesetzt.
Das löst aber leider das Problem nicht.
Ein weiterer Versuch mit onload:
<body onload="javaScriptFunction()">
values innerhalb der Form auch, aber nicht die Elemente mit den ID's 'SelectID1' 'SelectID2' 'SelectID3' .............
Kann mir jemand weiterhelfen? Danke für eure Unterstützung.
Problem hat sich nach langem (stunden-tagelangem) Probieren von selbst gelöst, Ursache unbekannt.
Sorry für ins Netz stellen.
Kommentar