![]() |
![]() ![]() |
![]() |
![]()
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? -------------------- Organizujesz konkurs? Chcesz coś wygrać? Wejdź na www.e-Konkursy.info :)
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Jaki to ma sens i cel? Nie prościej jest ów div od początku dołączyć do treści strony, tyle że go ukryć i wyświetlić dopiero w momencie kliknięcia?
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#3
|
|
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 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 25.03.2009 Skąd: Pionki Ostrzeżenie: (0%) ![]() ![]() |
to jest aby początek kodu, ogólnie chodzi mi o wczytanie zewnętrznego js i wywołanie z niego jakiś funkcji...
-------------------- Organizujesz konkurs? Chcesz coś wygrać? Wejdź na www.e-Konkursy.info :)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W takim razie wywołanie funkcji z pliku, który jest wczytywany, powinieneś wywołać w momencie załadowania tego pliku. W innym przypadku nie będzie ona zdefiniowana.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 25.03.2009 Skąd: Pionki Ostrzeżenie: (0%) ![]() ![]() |
w contact.js dałem:
Kod function cos() { alert("dziala"); } w pliku głównym bez względu czy dam: Kod ga.onload = function(){ cos(); } czy Kod ga.onload = cos; nie działa -------------------- Organizujesz konkurs? Chcesz coś wygrać? Wejdź na www.e-Konkursy.info :)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Może nie wczytuje Ci pliku? Zajrzyj w Firebugu do zakładki Net. Powinno Ci pokazać czy plik się wczytał, czy np. masz błąd 404. Sprawdź, czy na pewno na stronie masz jakiś element <div />, do którego doklejasz skrypt. A najlepiej to dodawaj go do <head />, a nie <div />.
Jednym słowem - debuguj ![]() Ten post edytował sowiq 20.08.2013, 09:07:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 25.03.2009 Skąd: Pionki Ostrzeżenie: (0%) ![]() ![]() |
[EDIT]
dałem taki kod: Kod <script type="text/javascript"> function contact(form) { var ga = document.createElement('script'); ga.setAttribute('type', 'text/javascript'); ga.setAttribute('src', './js/contact.js'); ga.setAttribute('async', true); var s = document.getElementsByTagName('div')[0]; s.parentNode.insertBefore(ga, s); } </script> <body onload="contact('form')"> <div> <a href="http://moja_strona.pl/kontakt.html" onclick="cos();return false;">Skontaktuj się z nami</a> </div> i działa. Ten post edytował pionas 20.08.2013, 17:02:19 -------------------- Organizujesz konkurs? Chcesz coś wygrać? Wejdź na www.e-Konkursy.info :)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To równie dobrze możesz zrobić tak jak poniżej, ale co ja tam wiem...
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 25.03.2009 Skąd: Pionki Ostrzeżenie: (0%) ![]() ![]() |
to prawda mogę zrobić i tak i myślę że w taki sposób nie miałbym kolejnego problemu z contact.js:
Kod function cos(website) { var div = document.createElement('div'); div.innerHTML = "<a href='#' onclick=\"close();return alert('aaa');\" style=\"float:right\">zamknij</a><br />lalalala"; div.setAttribute('id', 'contact'); document.body.appendChild(div); } function close() { document.getElementById("contact").style.display='none'; } czemu nie działa funkcja close? Ten post edytował pionas 20.08.2013, 17:40:50 -------------------- Organizujesz konkurs? Chcesz coś wygrać? Wejdź na www.e-Konkursy.info :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:17 |