Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wywołanie fukcji js z drugiego pliku html
Forum PHP.pl > Forum > Po stronie przeglądarki
chyzio
Więc problem jest taki. Przetwarzany jest aktualnie plik plik1.html w nim znajduje się link do plik2.html klikamy w link i zaraz po kliknięciu ma przetworzyć plik2.html i wywołać funkcję js w nim zawartą zdarzenie
  1. <body onload"funkccja()">
odpada. Trzeba to wywołać w linku jakoś.
ziqzaq
Chcesz wywołać funkcję: 1. po kliknięciu na link, 2. czy zaraz po przejściu do plik2.html, 3. czy po przejściu do plik2.html i załadowaniu całego dokumentu?
1. W linku zdarzenie onclick="",
2. plik2.html w head wywołanie funkcji (<script type="text/javascript">moja_funkcja();</script>),
3. w body onload="" (lub jakiś odpowiednik w head sprawdzający czy dokument się załadował np. window.onload, czy jquery i $(document).ready()).
Napisz co chcesz osiągnąć, bo piszesz "klikamy w link i zaraz po kliknięciu ma przetworzyć plik2.html i wywołać funkcję js" i z tego co napisałeś to właśnie tak robisz.
Może nie zrozumiałem co masz na myśli pisząc "przetworzyć", może chodziło o dynamiczne załadowanie plik2.html do plik1.html - czyli ajax?
Jeśli możesz to doprecyzuj co chcesz osiągnąć.
chyzio
Ok jest plik index.html do niego jest ładowana treść z plików html po ajxie

  1. function submitForm($param){
  2.  
  3. var wybor = $param;
  4.  
  5. xmlHttp = GetXmlHttpObject();
  6. if (xmlHttp == null) {
  7. alert ("Your browser does not support AJAX!");
  8. return;
  9. }
  10. xmlHttp.onreadystatechange=processReqChange;
  11.  
  12. switch (wybor) {
  13.  
  14. case 'home':
  15. xmlHttp.open("post","artykuly/home.html",true);
  16. break
  17.  
  18. case 'oferta':
  19. xmlHttp.open("post","artykuly/oferta.html",true);
  20. break
  21. ...


jedynym wyjątkiem jest galeria aby do niej przejść jest zwykły link

  1. <a class="menuitem" href="galeria.html" >Galeria</a>


teraz aby wrócić do index.html z galerii i wywołać funkcję która załaduje mi ofertę

  1. <a class="menuitem" href="index.html" onclick="submitForm('oferta')">Oferta</a>


no i po tym linku wracam ale do strony głównej a zamierzam do oferty (a więc wywołać index.html i kolejno funkcje submitForm('oferta') )
czyli jakieś wywołanie jak by z linka muszę zrobić :/
Rafal Filipek
Nie można zrobić tak że masz 2 osobne strony i po zwykłym kliknięciu na link wywołasz coś na innej stronie. Ja bym sobie dodał do strony index.html funkcje która odczytuje paramtery get z url'a ( tutaj znajdziesz taką ). Nastęnie na stronie galerii dodajesz tylko jakiś parametr do url'a a w index.html sprawdzasz czy on występuje i wywołujesz odpowiedni kod.
flashdev
Cytat(chyzio @ 4.01.2009, 16:29:19 ) *
Więc problem jest taki. Przetwarzany jest aktualnie plik plik1.html w nim znajduje się link do plik2.html klikamy w link i zaraz po kliknięciu ma przetworzyć plik2.html i wywołać funkcję js w nim zawartą zdarzenie
  1. <body onload"funkccja()">
odpada. Trzeba to wywołać w linku jakoś.


plik1.htm
Kod
<a href="plik2.htm#uruchom">uruchom</a>
<a href="plik2.htm">nie uruchamiaj</a>


plik2.htm
Kod
<script>
function uruchom(){
alert("uruchomiono :)")
}
document. onload=function(){
if(this.location.indexOf("uruchom")!=-1){
uruchom()
}
}
</script>


Ja bym to widział mniej wiecej tak. Mozna to oczywiście udoskonalić. Mozesz również parametry przekazywać przez cookies, jeśli działasz w obrębie jednej domeny.
chyzio
Coś takiego jak najbardziej
  1. <a href="index.htm#oferta">Oferta/a>


coś jak php'owe
  1. <?php
  2. $_GET['zmienna']
  3. ?>
a jak to rozpoznać js z powyższego linka ten napis oferta ? To rozwiązało by problem
chyzio
Rafal Filipek, dziękuję serdecznie i pozostałym także smile.gif oczywiscie chodzilo o self.document.location.hash.substring(1)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.