Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Html w zmiennej javascript
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
DuduS
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
nospor
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.
DuduS
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
revyag
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.
DuduS
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
revyag
To chyba tak będzie:
Kod
window.opener.ramka.document.getElementsByTagName('html')[0].innerHTML;
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.