Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dostęp z okna "dziecka" do formularza w oknie "rodzicu"
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
aradan
Witam.

Próbuję napisać skrypt, który z poziomu okna dziecka aktualizuje pola
formularza w oknie rodzicu. Wiem, że temat był wielokrotnie wałkowany,
ale nie udało mi się znaleźć dobrego rozwiązania.

W oknie rodzicu mam formularz o nazwie "form". Jedno z pół formularza
jest następujące:

<input TYPE="text" id="input_text" name="skad11">

Napisałem przykładowy skrypt, który ma wpisać dowolny tekst do pola o
nazwie skad11, ale nie wiem czemu nie działa:

  1. <script language="JavaScript">
  2. function wstaw() {
  3. opener.form.skad11.value = "jakiś tekst";
  4. }
  5.  


próbowałem również:
  1. parent.form.skad11.value = "jakiś tekst";
  2. opener.document.form.skad11.value = "jakiś tekst";
  3. parent.document.form.skad11.value = "jakiś tekst";
  4. window.opener.document.form.skad11.value = "jakiś tekst";
  5. window.parent.document.form.skad11.value = "jakiś tekst";


Bez rezultatu. Będę bardzo wdzięczny za pomoc.

Pozdrawiam.
Łukasz Będziński.
Norbas
opener to obiekt typu Window. Aby dostać się do formularza musisz jeszcze zastosować document, czyli:
  1. opener.document.form.skad11.value = "jakiś tekst"
gekon
Lepiej:
  1. document.form["nazwa_formularza"].elements["skad11"].value = "jakiś tekst";


Najlepiej:
  1. document.getElementById('input_text').value = "jakiś tekst";
Joy-machine
jeszcze lepiej niż najlepiej:
  1. $('input_text').value = "jakiś tekst";


W Twoim przypadku:

  1. window.opener.$('input_name').value = 'wartosc';



gdzie $ => google.com
gekon
Nie wiem czym różni się funckja użytkownika od tej zaimplementowanej w przeglądarce? Chyba tylko tym, że jeżeli jest używana na siłę niepotrzebnie zaśmieca pamięć.
lukasz_sosnowiec
Cytat(gekon @ 7.02.2007, 21:13:08 ) *
Nie wiem czym różni się funckja użytkownika od tej zaimplementowanej w przeglądarce? Chyba tylko tym, że jeżeli jest używana na siłę niepotrzebnie zaśmieca pamięć.

Ja osobiście uważam, że przy nauce JavaScriptu (czyt. na tym forum) powinno się używać document.getElementById(). Sam uczyłem się JavaScriptu około 5 lat temu ... od temtej pory miałem dużą przerwę i teraz znów się zabrałem za naukę. I patrząc na nic nie znaczący na pierwszy rzut oka $ jeszcze kilka dni temu nie miałem pojęcia o co chodzi, nawet po odesłaniu do google. Tak przypadkiem przyglądając się frameworkowi prototype dopiero uświadomiłem sobie co ów znaczek robi.
Chodzi mi o to, że może i w większych projektach $ może uprościć odwołania, ale po co używać go na siłę podczas nauki? Pierwszy lepszy user (niezaznajomiony z JS) wejdzie pobieżnie na forum i spojrzy na kod w którym zobaczy np $('menu').style.width = "40px;" i co pomyśli ... że $ wchodzi w skład JavaScriptu bo nikt nawet nie wspomina że to funkcja użytkownika. Jakże się zdziwi że bez odpowiednich implementacji $ nie zadziała.
Wiem że dla doświadczonych w JS $ jest domniemaniem, ale trzeba pamiętać też o początkujących, którzy nie będą mieli o tym pojęcia. Natomiast patrząc na document.getElementById() nawet gdy nie będą wiedzeli co to, to z odrobiną chęci zajrzą do pierwszej lepszej dokumentacji i się połapią.
gekon
O tym właśnie mówiłem.
Joy-machine
Cytat
nawet gdy nie będą wiedzeli co to, to z odrobiną chęci zajrzą do pierwszej lepszej dokumentacji i się połapią.

Szkoda że z tymi chęciami jest tak marnie.

Cytat
Nie wiem czym różni się funckja użytkownika od tej zaimplementowanej w przeglądarce? Chyba tylko tym, że jeżeli jest używana na siłę niepotrzebnie zaśmieca pamięć.
biggrin.gif biggrin.gif biggrin.gif Masz 2MB ramu że JS Ci zaśmieca? JS bierze dużo proca, nie ramu. A jeżeli uważasz ze używanie funkcji pogarsza działanie skryptu to właśnie ujawnił się Twoj geniusz programisty.


Polecam zapisać w ulubionych, zaraz po google.pl smile.gif
http://www.dustindiaz.com/top-ten-javascript/
gekon
No właśnie, że "z tymi chęciami jest tak marnie" i odwiedzam więcej niż jedną stronę dziennie, różnie z tą pamięcią może być. Pozatym głównie chodzi tu o dydaktykę.
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.