Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] wstawianie tekstu przez przycisk w innym oknie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Basic_01
Chodzi mi o to ze mam okno "matka" i "dziecko".... okno dziecko jest otwierane buttonem z oknia 'matka', w oknie matka mam pole textarea o nazwie 'maska' i chciałbym aby po naciśnieciu na buttona w 'dziecku' została wywoływana funkcja w 'matce' która wstawi do pola textarea o nazwie 'maska' tekst wprowadzony do funkcji... Jeśli przycisk wstawiajacy byłby w tym samym oknieto działa wszystko ok, a instrukcja wyglada tak
  1. onClick="insertAtCursor2(maska,'d')
, ale skoro jestem w 2 oknie to wywołuje tak
  1. onClick="window.opener.insertAtCursor2(maska,'d')
jednak wtedy nic nie działa;/... na próbe wstawiłem alert który wyświetla zmienne wysyłane do funkcji i jeśli bede wstawiał z tego samego okna to wyświetla mi "zmienna1: d zmienna2: [object HTML TextAreaElement]" wiec juz wiem dlaczego gdy nazwa textarea jest w '' to nie działa:), jednak gdzy przesłałem z 2 okna do funkcji
  1. onClick="window.opener.insertAtCursor2('[object HTML TextAreaElement]','d')
albo
  1. onClick="window.opener.insertAtCursor2(window.opener.maska,'d')
w tym pierwszym przypadku w alercie pokazuje 2 zmienne ok ale nie wstawia litery w 2 wyświetla w alercie 'd' ale zamiast maski wyświetla 'undefinded' sadsmiley02.gif (oczywiście tez nic nie wstawia to textarea sciana.gif )
Mam nadzieje ze nie zamieszałem sprawy i da się zrozumieć o co mi chodzi tongue.gif
lord_t
Jeśli pierwszy argument funkcji( insertAtCursor2(nazwa,wstawiane) ) jest nazwą elementu i odwołujesz się do niego przez getElementById(nazwa), to musisz podać w wywołaniu tak: insertAtCursor2('maska','d').

pzdr.

PS. Używaj kropek i przecinków w postach.
Basic_01
Na poczatku wielkie dzieki za odp thumbsupsmileyanim.gif i sory ze nie dawałem znaku zycia wstydnis.gif , ale troche mnie ostatnio w szkole przycisneli i nie miałem czasu zaglądnąć....
A wiec tak: na javaScript sie raczej nie znam jedynie tyle co podpatrze tu i tam zeby cos wstawić, albo lekko przerobić. Chyba rozumiem jak działa getElementById(nazwa) ale nie wiem jak tego dokładnie uzyć... próbowałem tak:
  1. function insertAtCursor2(myField,myValue) {
  2. var myField =document.getElementById('myField');
  3. alert("zmienna my Value: "+myValue+" zmienna myField: "+myField)
  4. }
jednak wtedy na alercie zmienna ma wartość null. Gdybyś wiedział gdzie mam to "posadzić" to byłbym wdzieczny za radę:)
lord_t
1. myField (- argument funkcji i w metodzie getElem... ) nazwałbym inaczej, żeby nie kolidował z var myField
2. Zmienna którą przekazujesz do funkcji jest stringiem, więc w getElementById nie pisz myField w apostrofach (stąd brał się null).
2a. Jeśli skasujesz apostrofy to pomoże tylko po części, bo będziesz miał wyświetlane [Http...]. Rada: zrób np. tak:
  1. var myField =document.getElementById('myField').value;
(patrz value)
Basic_01
pomogło usuniecie nawiasów:) Wielkie dzieki, bo samemu zajęło by mi to duzo czasu nie wiedząc czego szukać yahoo.gif
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.