Mam dwie różne strony JSP, które Java backend łączy razem i odsyła z powrotem do tej samej renderowanej strony HTML.Zakres funkcji JavaScript między znacznikami skryptu
Każdy JSP ma własną <script>
blok i określa funkcje wewnątrz tego bloku:
JSP # 1:
<script type="text/javascript">
function blah() { ... }
</script>
JSP # 2
<script type="text/javascript">
function foo()
{
blah();
}
</script>
Tak jak mówiłem, backend dodaje do odpowiedzi HTTP i wysyła je z powrotem do przeglądarki podczas tego samego żądania.
Po uruchomieniu tej strony w przeglądarce mogę stwierdzić od razu, że blah()
nie jest wykonywane po otrzymaniu wywołania foo()
. Widzę błąd konsoli w Firebug stwierdzający, że blah()
nie jest zdefiniowany. Zastanawiam się, czy blah()
ma tylko zakres w swoim własnym tagu <script>
i podobnie dla foo()
. Czy tak jest w tym przypadku, czy jest to coś innego?
Po przejściu do źródła strony widzę zarówno bloki skryptów, jak i obie funkcje. To mówi mi, że wszystko jest generowane/renderowane poprawnie po stronie serwera, ale być może moje podejście jest z natury błędne (definiowanie funkcji wewnątrz różnych znaczników skryptu). Z góry dziękuję.
kiedy i jak można wywołać foo()? – Philipp
Funkcja foo() jest wywoływana, gdy użytkownik najedzie myszą na element. Mogę sprawdzić, czy zostanie wywołany, zastępując jego zawartość instrukcją alertu (""). – IAmYourFaja