|
|
![]() |
||
|
|
|||
|
JavaScript.nu
/
JavaScript-kurs
/
Location, parent.location och top.location
Det du nu ska l�ra dig �r att du vet p� vilken sida du �r p� (?). Nja, jag kan lova att det inte �r s� korkat som det l�ter, f�r det r�r sig om JavaScript...
Har jag skrivit detta p� m�f�?
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write("Ok, just nu �r du p� denna sida:<BR>");
document.write("" + location + "<P>");
document.write("Om du har frames s� ligger denna sida som du nu l�ser i denna framesida:<BR>");
document.write("" + parent.location + "<P>");
document.write("Om du har m�nga framesidor i andra framesidor s� kanske det jag skrivit d�r ovan inte �r det som du ser i adressf�ltet, hur som helst ser du detta i adressf�ltet:<BR>");
document.write("" + top.location + "<P>");
//-->
</SCRIPT>
Egentligen finns inget nytt i detta script, det enda som �r nytt s� att
s�ga �r ju att jag skriver ut n�gra v�rden (det g�r man ju genom att skriva
" + det_varde_som_ska_skrivas_ut + "). V�rdena som jag skrivit ut,
�r till skillnad mot de v�rden du l�rt dig, redan deklarerade,
allts� att man inte beh�ver ge dem ett v�rde.
Vad kan nu dessa script vara bra f�r?
Detta �r ett roligt och v�ldigt effektivt script som du kan anv�nda, det skriver du s�h�r:
<SCRIPT LANGUAGE="JavaScript">
<!--
if (top.location != location)
{
top.location.href = location.href
}
//-->
</SCRIPT>
Vad g�r d� detta script?
Jo, det �r s� att f�rst tar webbl�saren reda p� om top.location (det du ser i statusraden) har samma v�rde (adress) som location (den sida som scriptet finns p�). Om v�rdena inte (det st�r ju inte ==, utan !=, vilket betyder att de inte �r likadana) �r likadana s� startar scriptet p� n�sta rad, allts� att top.location.href (v�rdet i adressf�ltet) ska �ndras till det v�rde som location.href (sidan med scriptet) har. Detta �r ju utm�rkt d� du har en sida med frames, men inte vill att folk som l�nkar till dig ska ha dig i sin frame, utan ha din frame i helsk�rm.
Du kan ocks� anv�nda dessa funktioner i andra bra syften.
OBS: Observera att om du har frames i frames (allts� en framesida i en annan)
s� m�ste du t�nka p� att i vissa fall byta parent mot top.
Nu fr�gar du vad sjutton i vissa fall betyder...
Nu hoppas jag p� att du blivit lite klokare, detta �r n�mligen roliga saker att l�ra sig i JavaScript.
Nu tillbaka till scriptet jag skulle l�ra dig (att �ppna en sida som finns i en frame
i en annan frame eller kanske t.o.m. i helsk�rm).
<SCRIPT LANGUAGE="JavaScript"> <!-- parent.sidan_som_ska_forsvinna.location.href = parent.sidan_som_ska_komma_upp.location.href //--> </SCRIPT>Skulle du skriva detta rakt av s� skulle ju sidan som finns i ramen "sidan_som_ska_forsvinna" ers�ttas p� direkten av sidan som finns i ramen "sidan_som_ska_komma_upp". Allts� b�r du s�tta detta i t.ex. en funktion och aktivera scriptet med en l�nk (<A HREF="JavaScript:scriptets_namn()">). Skulle du vilja att sidan som finns i ramen (framen) "sidan_som_ska_komma_upp" ska komma upp i helsk�rm skriver du: <SCRIPT LANGUAGE="JavaScript"> <!-- top.location.href = parent.sidan_som_ska_komma_upp.location.href //--> </SCRIPT> Som vanligt... Till n�sta del. Copyright © Omid Rouhani 1997-2022; Alla r�ttigheter reserverade. Guider: [ HTML guide ] - [ JavaScript guide ] - [ DHTML guide ] - [ Perl guide ] - [ Sitemap ] |