Reschi: Funktionsaufruf html + javascript

Blutiger Anfänger... geht los :

<html>
<head>
.
.
.
<title>myAVR-Server</title>

<script src="allg.js" type="text/javascript"></script>

<script language="JavaScript" type="text/javascript">
.
.
.
function setStatus(inp)
{
	checkTimeout();
	if (inp)
	{
		myEth.readState(inp);
		setIdocTextAdd(lang["setStatusOK"]);
	}
}
</script>

</head>
<body onLoad="onloadDo();">
.
.
.
</body>

</html>

Habe hier nur einen Auszug der html-Datei reinkopiert. Mein Problem : Die Funktion setStatus(inp) wird hier definiert, wird aber NIRGENDWO aufgerufen ??? Wenn ich die Funktion rauslösche, funktioniert die Anwendung aber nicht. Vielleicht kann mir jemand auf die Sprünge helfen. Bin eher bei C-Anwendungen zu Hause...hier aber ist momentan Ende. Danke für Antworten.

  1. Hallo Reschi,

    ein Hinweis vorab: Codeblöcke beginnt und beendet man hier im Forum mit einer ~~~ Zeile. Hinter der ersten Zeile gibt man die Sprache an, das ist hier html. Ich habe das für Dich geändert.

    Ich nehme an, dass Du in allg.js bereits gesucht hast?

    Wenn Du setStatus in den Dateien des Projekts nirgends findest, dann könntest Du einmal die Entwicklerwerkzeuge deines Browsers öffnen und es mit Debugging versuchen. Als C-Entwickler weißt Du sicher, was ein Breakpoint ist - das kannst Du in den Entwicklertools auch tun. In Chrome heißt der entsprechende Tab "Quellcode", im Firefox "Debugger". Auf der linken Seite dieses Tabs ist ein Navigator für die Quellcodedateien, suche die HTML-Datei heraus, darin die setStatus-Methode und setze auf der ersten Zeile der Methode einen Breakpoint.

    Wenn Du den Quellcode editieren darfst, kannst Du es Dir auch einfacher machen und als erste Zeile in setStatus das debugger-Statement einfügen. So:

    function setStatus(inp)
    {
       debugger;
       checkTimeout();
       ...
    }
    

    Wenn die Entwicklerwerkzeuge offen sind, wirkt dieses Statement wie ein Breakpoint, dass das Script anhält und Du den Zustand inspizieren kannst. Insbesondere findest Du dann den Aufrufstack (oder Aufrufliste) und kannst schauen, wo der Aufruf herkommt.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Danke für die Antwort... auch in allg.js findet sich ein solcher Aufruf nicht. Beim debugging statement zeigt mir der callstack die Zeile

      
      idoc.document.open();
      
      

      Dort stoppt der script, ich verstehe trotzdem nicht wer und wo mir diese Funktion aufruft ? Es gibt auch noch so eine Funktionsdefinition Funktion setOK(); mit der habe ich genau das gleiche Problem.

      Ich vermute den Fehler bei MIR im grundlegenden Verständnis von js+html. Ablauf und Aufruf wie in C helfen da wahrscheinlich nicht viel weiter. Gruß Reschi