Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Html w zmiennej javascript, Jak wyciągnąc zawartość iframe
DuduS
post 19.06.2005, 21:57:11
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.06.2003

Ostrzeżenie: (0%)
-----


Witam !

Mam nastepujący problem:
Na stronie mam ramke np:
Kod
<iframe id="ramka" src="page.html" style="height:340px; width:545px;"></iframe>


zawartość tejrze ramki chciałbym pobrać w postaci kodu html i natępnie poddać obróbce dalszej w php. Zawartość muszę przesłać do otwieranego popupa.

Gdy robie coś takiego:
Kod
<a href=# onClick="javascript:void(alert(ramka.document.all.tags('html')[0].outerHTML))">link</a>

to w "alercie" bardzo ładnie wyskakuje mi właśnie to co potrzebuje, czyli kod źródłowy strony. Niestety nie działa to już np. w postaci:
Kod
<form method=post name="formularz">
<input type=hidden name="kodhtml" value="s">
<input type=submit value=send name=send>
</form>

<script language="JavaScript">
document.formularz.kodhtml.value=void(ramka.document.all.tags('html')[0].outerHTML);
</script>

gdy użyje void do po naciśnięciu send w formularzu wyskakuje "undefinied", natomiast gdy nie uzyje void to nie pokazuje sie nic.
Moim zdaniem trzeba odpowiednio przekazać (zapisać) zmienną w formularzu, ale jak to zrobić ?

Z góry dzieki za pomoc.
DuduS
Go to the top of the page
+Quote Post
nospor
post 20.06.2005, 09:06:11
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jeśli nie dasz void to gdzie ci się nic nie pokazuje? W popupapie? A wyświetlasz to w popupie? funkcja void nic nie robi i wywolanie jej z parameterm zawartości html to ci raczej nic nie da. Wczesniej ci wypisywalo, bo dawales jescze to w alercie. Skoro wypisywalo ci walercie znaczy ze dobrze dobierasz się do iframe. I to należy gdzieś przypisać.
Piszesz że do popup do chcesz wyslać. Ale ten formularz nie otwiera ci przecież popupa więc o czym tu mowa. Napisz dokladnie jak ty go otwierasz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DuduS
post 20.06.2005, 09:16:29
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.06.2003

Ostrzeżenie: (0%)
-----


Po prostu wyciąłem niepotrzebny do zrozumienia problemu kod rzeby łatwiej mozna było zrozumiec problem. Ogólnie doszedłem do momentu że gdzy wysyłąm zawartość
Kod
ramka.document.all.tags('html')[0].outerHTML
do cookie to wszystko jest ok (poza tym że cookie zamienia przełamanie lini na "__" ale to za pomocą str_replace można łatwo usunąć), chciałbym jednak zamiast do cookie przypisać zawartość ramki do wartości pola formularza i to sie jak na razie nie udaje sad.gif
Go to the top of the page
+Quote Post
revyag
post 20.06.2005, 09:19:22
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Możesz to prościej zrobić. Rozumiem że tym formularzem otwierasz popupa tak ?
To przy submicie przypisuj do pola to co chcesz, wtedy zadziała.
Kod zmodyfikowałem bo na ff nie będzie działać
  1. <script type="text/javascript">
  2. function hid() {
  3. document.getElementById("kodhtml").value=ramka.document.getElementsByTagName('html')[0].innerHTML;
  4. alert(document.getElementById("kodhtml").value);
  5. }
  6. </head>
  7.  
  8. <iframe name="ramka" src="ramka.html" style="height:340px; width:545px;"></iframe>
  9.  
  10. <form method="post" name="formularz" onsubmit="hid()">
  11. <input id="kodhtml" type="hidden" name="kodhtml" value="s">
  12. <input type="submit" value="send" name="send">
  13. </form>
  14.  
  15. </body>
  16. </html>

Dałem jeszcze alerta, żebyś zobaczył że jest ok.


--------------------
-------------

------
Go to the top of the page
+Quote Post
DuduS
post 20.06.2005, 10:21:33
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 30.06.2003

Ostrzeżenie: (0%)
-----


Jeszcze jedno pytanie.
Załóżmy że chce to wykonać z poziomu popupa otwieranego z strony głównej. Iframe też znajduje sie na tej stronie głównej. Formularz znajduje sie w popupie. Jak zmodyfikować tą linijke
Kod
ramka.document.getElementsByTagName('html')[0].innerHTML;

aby odnosiła sie do ramki na stronie głownej ?

Pozdrawiam wszytkich
DuduS

Ten post edytował DuduS 21.06.2005, 00:36:22
Go to the top of the page
+Quote Post
revyag
post 22.06.2005, 09:27:18
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


To chyba tak będzie:
Kod
window.opener.ramka.document.getElementsByTagName('html')[0].innerHTML;


--------------------
-------------

------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:50