IPRO - PC Magazine Romania, Ianuarie 2003
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB
Seturi de cadre (frameset-uri) avansate cu Javascript și PHP
Emanuel Baruch
Vi s-a întâmplat vreodată să deschideți o pagină găsită prin intermediul unui
motor de căutare și să descoperiți că aceasta nu conține un meniu de navigare
și nici un fel de link-uri? Cel mai probabil, aceasta făcea parte dintr-un set
de cadre (frameset). Acest scenariu este unul din motivele pentru care nu este
recomandată utilizarea frameset-urilor, motoarele de căutare indexând separat
paginile din componența lor. Bineînțeles că includerea în aceste pagini a unui
link către setul de cadre ar fi binevenită, însă acesta va spori considerabil
volumul nostru de muncă și îi va deruta probabil pe cei care l-au deschis deja.
În continuare vă voi prezenta un mic script cu ajutorul căruia veți putea trece
foarte ușor peste această problemă și veți putea folosi cu mai multă încredere
frameset-urile. Rezultatul va fi următorul: atunci când cineva deschide o astfel
de pagină, browser-ul o va reîncărca incluzând-o în frameset-ul din care trebuie
să facă parte. Acest script este o combinație JavaScipt - PHP, așadar va funcționa
doar pe serverele care oferă această facilitate. Să presupunem că avem un frameset
care conține două rânduri:
index.php
<frameset rows="100,*">
<frame src="top_frame.php" name="top">
<frame name="content" src="content.php">
</frameset>
În pagina content.php (ideal este ca scriptul să fie introdus în antetul paginii,
așadar, în cadrul tag-ului head), vom introduce următorul script:
content.php - parțial
<script>
<!--
setTimeout("red()",1000);
function red(){
if (self == top) top.location="frame.php?url="+
document.location;
}
-->
</script>
Acesta verifică dacă pagina a fost deschisă în afara frameset-ului, iar în caz
afirmativ, va reîncărca un fișier special frame.php (pe care îl vom crea ulterior).
Mai mult, scriptul înregistrează calea fișierului curent și o transmite ca variabilă
(variabila url).
Fișierul frame.php (derivat din frameset-ul inițial) va arăta astfel:
frame.php
<html>
<head></head>
<frameset rows="100,*">
<frame name="top" src="top_frame.php">
<?php print " <frame name=\"content\" src=\"$url\"> "; ?>
</frameset>
<body></body>
</html>
Avantajul acestui script constă în faptul că poate fi inclus fără modificări
în toate subpaginile care fac parte dintr-un frameset și care nu dorim să poată
fi vizualizate în afara acestuia.
|