Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] wczytywanie zewnętrznego js w js, createElement i getElementsByTagName
pionas
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 25.03.2009
Skąd: Pionki

Ostrzeżenie: (0%)
-----


Cześć,

na stronie chcę zrobić zdarzenie onClick, który uruchomi funkcję js wczytującą zewnętrzny plik js i uruchomi jej funkcję.
Niestety mam problem.
Kod wygląda tak:

index.html:
Kod
<script type="text/javascript">
function contact(form) {
    var ga = document.createElement('script');
        ga.type = 'text/javascript';
        ga.async = true;
        ga.src = './js/contact.js';
    var s = document.getElementsByTagName('div')[0];
        s.parentNode.insertBefore(ga, s);
}
</script>
<a href="http://moja_strona.pl/kontakt.html" onclick="contact('form');return false;">Skontaktuj się z nami</a>


contact.js:
Kod
function cos {
document.write('<div id="dial" class="okno" style="position:absolute;top:0;left:0;width:500px;height:200px;">formularz...</div>');
}


próbowałem dać w contact.js:
window.onload = cos;
ale nie działa...
W ogóle jest możliwość wczytania js do div?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Kolego, zabierasz się do tego, kolokwialnie mówiąc - od dupy strony.

Zacznijmy od tego, że chcesz wczytywać dodatkowy plik JS tylko po to, żeby wyświetlić jeden element <div />. Takie podejście miałoby sens, gdyby ów plik JS ważył kilkadziesiąt/set KB i nie chciałbyś go ładować za każdym razem, a tylko wtedy, kiedy będzie potrzebny.
Tutaj zdecydowanie wystarczyłoby wywołać kod dodający element bezpośrednio z Twojej funkcji function contact(form).

Co do window.onload = cos; - zadziała to tylko wtedy, kiedy funkcja cos będzie zdefiniowana w momencie wywołania zdarzenia "onload" obiektu "window".

Reasumując przydługiego posta. Zacznij od podstawowych rzeczy, które trochę ułatwią Ci pracę:
jQuery
jQuery.load()
opis metody jQuery.load

Ewentualnie zrób tak, jak napisał @b4rt3kk. Jak dla mnie to w takiej prostej sytuacji najbardziej rozsądne rozwiązanie. jQuery.toggle(), jQuery.hide(), jQuery.show()

Ten post edytował sowiq 19.08.2013, 19:26:49
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 19:13