Skocz do zawartości
Forum komputerowe PC Centre
akhtor

problem z javascript

Rekomendowane odpowiedzi

Mam taki problem: szukam skryptu, który by po wpisaniu do okna formularza otwierał stronę o dowolnym adresie w pływającej ramce iframe. Mam skrypt, który otwiera mi ją w tym samym oknie (poniżej daję źródło), jednak nie umiem ustawić, by otwierał ją w ramce. jeśli ktoś umie to zrobić, to proszę o opisanie tego w tym temacie.

 

Dokładne źródło pliku z moim skryptem:

<HTML><HEAD>

<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">

<script Language="JavaScript">

function password (pass) {

var password = ''

if (password != null){

location.href= "http://" + pass;

}}

</SCRIPT>

</HEAD><BODY>

<FORM name="login">

<INPUT NAME="pass" target=okienko onmouseout="password(form.pass.value)">

<IFRAME NAME="okienko" ALIGN=right WIDTH=95% HEIGHT=100% scrolling=yes marginWidth=0 marginHeight=0 frameBorder=0></IFRAME>

</BODY></HTML>

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Mam taki problem: szukam skryptu, który by po wpisaniu do okna formularza otwierał stronę o dowolnym adresie w pływającej ramce iframe. Mam skrypt, który otwiera mi ją w tym samym oknie (poniżej daję źródło), jednak nie umiem ustawić, by otwierał ją w ramce. jeśli ktoś umie to zrobić, to proszę o opisanie tego w tym temacie. (...)

Kod szczerze powiedziawszy jest trochę dziwny i nie bezbłędny (mogę pomóc Ci go poprawić zgodnie z najnowszymi standardami, jeśli chcesz). I nie rozumiem, po co otwierać stronę w iframe, zwłaszcza, że iframe nie jest zgodne ze specyfikacją XHTML 1.1 ani nawet XHTML 1.0 Strict (krótko mówiąc, nie jest zbyt nowoczesne). Mam za to inne rozwiązanie. Możesz zastosować bibliotekę Thickbox i po wpisaniu adresu wyświetlić stronę w osobnej warstwie, umieszczonej niejako ponad stroną, jak w przykładzie: demo. Wygląda to bardzo atrakcyjnie :)

 

P.S. Jeśli uparcie będziesz chciał iframe, postaram Ci się pomóc :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Clamoor

ja bym to pociagna z ajaxgeta i po kłopocie ...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
ja bym to pociagna z ajaxgeta i po kłopocie ...

Też można zatrudnić do tego AJAX, ale do tego potrzeba PHP, a poza tym ten przypadek jest trochę za prosty, żeby stosować jakby nie było dość skomplikowane technologie, do jakich zalicza się AJAX :) Jak coś: ostatni przykład: http://www.dynamicdrive.com/dynamicindex17/ajaxroutine.htm Możesz to bez problemu połączyć z zaproponowanym przeze mnie Thickboxem: w input zostanie wprowadzony adres i po kliknięciu na link z odpowiednią klasą w tym samym oknie przeglądarki otworzy się ładne okienko np. ze stroną internetową :) Choć nie wiem, jak Thickbox zareaguje na nagłówki HTML - trzeba by to sprawdzić :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Clamoor

Wybacz marek ale nie masz racji!

 

http://advajax.anakin.us/index-pl.htm

 

jest to trywialnie proste ...

 

po dodaniu biblioteki advajaxa

advAJAX.get({
    url : "adres",
    onSuccess : function(obj) { co wykonać }
});

 

w tym momencie pod zmienna

obj.responseText;

mamy to co nam zwróciło popranie strony wystarczy to gdzies wrzucic np inner html'em albo obiekt.value i po kłopocie

 

Oczywiście jest to podstawowe i najprostsze wykorzystanie ajaxa :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sorki, ale nie za bardzo wiem, o co wam chodzi i ni jak nie potrafię tego zrobić. Chodzi mi o to, by wstawić po lewej menu z linkami oraz tym okienkiem do wpisywania innych adresów. Dzięki temu zabiegowi pomimo klikania na dalsze odnośniki, menu po lewej byloby cały czas widoczne.

Jeśli to nie problem, to prosiłbym o gotowe skrytpy (a co do poprawności tego powyżej, to dla mnie ważne jest że działa - przynajmniej częsciowo)

a co do php, to wolałbym obyc się bez tego.

Edytowane przez akhtor

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Clamoor

a to zrob na starym ale jarym framesecie :)

^g frameset

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
a to zrob na starym ale jarym framesecie :)

^g frameset

co do tego, to też może być. Jednak problem tkwi w tym, że nie umiem ustawic w skrypcie, w jakiej ramce będzie otwierana strona (obojętnie jakiej ramce)

co do zwyklych linkow, to jest to banalne, ale w javascript juz nie do konca.

Edytowane przez akhtor

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam... proponuje coś takiego:

 

Wydziel (jak to ujął Clamoor) "stare dobre ramki" (framesety).

 

Jeśli główny plik strony wygląda np. tak:

 

<html>

<frameset rows="50%,50%">

<frame src="frame1.html" name="frameName1">

<frame src="frame2.html" name="frameName2">

</frameset>

</html>

 

i zakładamy, że w frame1.html masz pole formularza, a do ramki frame2.html chcesz załadować stronę. To w pliku frame1.html powinieneś umieścić taki kod java script:

 

function password (pass) {
var password = ''
if (password != null){
parent.frameName2.location.href= "http://" + pass;
}
}

 

Powinno zadziałać.

 

 

EDIT: Sprawdziłem, działa... szczegóły:

 

index.html:

<html>
<frameset rows="50%,50%">
<frame src="frame1.html" name="frameName1">
<frame src="frame2.html" name="frameName2">
</frameset>
</html>

 

frame1.html

<HTML>
<HEAD>
        <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">
        <script Language="JavaScript">
                function password (pass) {
                        var password = ''
                        if (password != null)
                        {
                                parent.frameName2.location.href= "http://" + pass;
                        }
                }
        </SCRIPT>
</HEAD>
<BODY>
        <FORM name="login">
        <INPUT NAME="pass" onmouseout="password(form.pass.value)">        
</BODY>
</HTML>

 

frame2.html

<html>
<body>
Druga
</body>
</html>

 

Nie polecam testować na onet.pl, bo ich skrypty nie pozwalają na załadowanie strony w ramce... ale google otwierają się ładnie.

 

Inna sprawa, że uruchamianie tej funkcji na onmouseout nie jest zbyt wygodne... lepiej to zrobić normalnym formularzem i po naciśnięciu przycisku Submit wywołać funkcję password w onSubmit.

 

Pozdrawiam!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wielkie dzięki Crow. Po odniesieniu tej komendy do mojej ramki wszystko działa tak, jak należy. Dzięki wszystkim, którzy próbowali mi pomóc.

 

Mam jeszcze jedno pytanie: jak zmodyfikować skrypt tak, by po wpisaniu np google.pl naciśnięcie [ENTER] otwierało tą stronkę?

Edytowane przez akhtor

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Polecamy się na przyszłość :)

 

EDIT:

 

tak jak pisałem, musisz zrobić z tego pełen formularz, np.:

 

<form name="formName" onSubmit="password(form.pass.value)">
Password: <input type="text" name="pass" value="">
<input type="submit" value="OK" onClick="password(form.pass.value)">
</form>

 

Powinno działać.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

×
×
  • Dodaj nową pozycję...