Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: window.open
Forum PHP.pl > Forum > Po stronie przeglądarki
AprilONeil
Otwieram przykładowo stronę w oknie
[JAVASCRIPT] pobierz, plaintext
  1. var x = window.open("message.php","_blank");
  2. x.document.forms[0].childNode[0].setBackground = red;
[JAVASCRIPT] pobierz, plaintext


Wszystko działa poprawnie dopóki message.php nie posiada w adresie jakieś zmiennej.
Przyjmuje to taką postać

[JAVASCRIPT] pobierz, plaintext
  1. var x = window.open("message.php?"+zmienna,"_blank");
  2. // x przykładowo = message.php?stek=3&obiad=5
  3. // Linijka pod spodem niestety przestaje działać
  4. x.document.forms[0].childNode[0].setBackground = red;
[JAVASCRIPT] pobierz, plaintext


Ostatnia linia kodu przestaje działać - nie ma możliwości zmiany wyglądu strony w oknie, ale np.
[JAVASCRIPT] pobierz, plaintext
  1. x.document.write("TREŚĆ");
[JAVASCRIPT] pobierz, plaintext
Zadziała i całe okno zostanie zastąpione napisem "TREŚĆ".

Jakieś propozycje jak rozwiązać problem?
Pozdrawiam.

trueblue
A jesteś pewien, że strona: message.php oraz message.php?stek=3&obiad=5 zwracają taką "samą" strukturę? Może ta z parametrami wyrzuca błąd i nie generuje się poprawnie.
AprilONeil
Nie mają takiej samej struktury aczkolwiek nie w tym sęk.
Chodzi o to, że z linkiem typu message.php?klops=5&stek=10 w window.open nie mam możliwości odwołania się do struktury dokumentu
Tak jak to przedstawiłem na górze -w drugim kodzie może być zarówno message.php?klops=5 jak i placek.php?klops=20&ziemniak=1
Nie ważne co mam w tym dokumencie nie mogę się do tego odwołać mając parametry w linku.


Pytanie jeszcze z innej beczki bo może to rozwiąże mój problem: Jeżeli mam
  1. <iframe src="kapusta.html" name="grzyby"></iframe>
To w jaki sposób odwołać się do elementów w tym iframe w javascript i je zmienić.

Jeszcze pragnę podkreślić, że strona z parametrami nie zwraca błędu.
trueblue
A może właśnie w tym sęk, że nie ma tam formularza, do którego próbujesz się odnieść.

http://stackoverflow.com/a/1452885
AprilONeil
Mam stronę:
  1. www.strona.host.pl/profile.php?section=mod&id=243

Otwieram ją w
[JAVASCRIPT] pobierz, plaintext
  1. window.open
[JAVASCRIPT] pobierz, plaintext

[JAVASCRIPT] pobierz, plaintext
  1. var x = window.open("profile.php?section=mod&id=243","_blank");
  2. x.document.body.style.backgroundColor = "red";
[JAVASCRIPT] pobierz, plaintext

Nie idzie ponieważ mam parametry w linku(są one poprawne).
W całym serwisie nie mam tego problemu tylko właśnie w linkach, które mają jakieś parametry.
owca_82
Ciąg zapytania w adresie nie ma tu nic do rzeczy, a nie działa pewnie dla tego że metoda open wczytuje plik asynchronicznie, a więc zanim serwer przemieli i wypluje wynik z pliku php, to skrypt js wcześniej wykona kolejną instrukcje, która odwołuje się do czegoś czego jeszcze nie ma wink.gif

Spróbuj opóźnić zmianę koloru przez setTimeout ... ewentualnie wywołanie callback'a z piku php
AprilONeil
owca_82 faktycznie miałeś rację. Wpadłem na to dzisiaj po południu - funkcja onload nie działała tak jak myślałem, a w internecie znalazłem bardzo fajny przykład, z buttonem, który zmieniał tło po kliknięciu i stąd wniosek. smile.gif

Dziękuje, pochwały przyznałem.
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.