| PC Help |
| уроци | | | софтуер | | | хардуер | | | речник | |
| | | връзки | ||||||||
| Frames vs. No Frames – По отношение на рамките (frames) сред web дизайнерите съществува доста твърдо разделение на “за” и “против”. Всяка от страните има основателни аргументи, и те не са за пренебрегване. Но нека най-напред да кажем какво точно представлява концепцията на тези “рамки” (frames). Идеята
Проблемите
Стената от проблеми може да се прескочи! За да решим проблема, първо трябва да си изясним в какво се състои той. Това е зареждането само на страницата, която търсачката намери – без изобщо да се извиква индексната страница. Следователно трябва да направим така, че зареждането на извиканата страница да предизвиква зареждане и на останалите frame-ове, съдържащи навигацията или каквото е във вашия случай. За целта първо трябва да видим какво съдържа кода на индексната страница. Ето примерен код за страница, изградена от 3 рамки – лява (за навигация), дясна (за съдържание) и горна (за заглавна картинка). Съдържанието на таговете, които в случая не са от значение, затова го пропускаме: <html> Разгледайте кода. Описанието на конструкцията на рамките е във <frameset> таговете. Src=”{име на файл}” показва коя страница се извиква като съдържание на съответния frame. Именно с тази страница ще работим. Това, което трябва да направим, е да накараме съответната страница да провери дали е част от нашата фреймова конструкция, или е извикана сама в браузера. Тази фреймова конструкция се явява “родител” (parent) за разглежданата страница. Да кажем, че индексната фреймова страница е файл с име frames.html. За самата проверка ще използваме JavaScript. Като клиентска технология той е независим от възможностите на сървъра, и поради това може а се ползва във всички страници без ограничения. Възможният проблем в този случай е, че някои потребители изключват JavaScript функциите на браузера си. Те обаче далеч не са много. И така, за да направим проверката ползваме следния код: <SCRIPT LANGUAGE="JavaScript"> В тялото (<body>) на самия HTML файл добавяме извикване на тази проверка при зареждане на страницата: <body onLoad="framecheck()"> Разбира се, кода за проверката винаги може да се измести и във външен .js файл, за да се използва той във всяка страница от сайта (със съответната референция за местоположението му). Проверката води до зареждане на страницата frames.html, ако страницата със съдържание (в която е вграден скрипта) е била извикана извън фреймовата конструкция. Задачата сега е frames.html да извика цялата фреймова конструкция, като постави проблемната страница на мястото, на което би трябвало да бъде. Ето и кода на frames.html, който прави това: <HTML> Както забелязвате, скриптът не изписва main.htm като страница, която да бъде поставена на мястото на страницата, извикана от потребителя. Именно това е идеята – JavaScript конструкцията замества името на страницата, и по този начин скриптът работи във всички случаи, без значение какво е името на проблемната страница. Няколко думи в заключение Както видяхте, да се предизвика с JavaScript извикване на навигацията от дадена фреймова конструкция не е толкова трудно. Използването на този скрипт обаче дава и допълнителни възможности. Ако ползвате горния (в този случай) frame за заглавна картинка, левия – за меню, а десния за съдържание, можете чрез задаване на target="_parent" за линковете да насочите отварянето на страници със съдържание да замества цялата начална фреймова конструкция, а като спестите JavaScript изписването на горния фрейм за втория индекс (и зададете втора страница с меню – аналогична на първата, но с target="{страницата_със_съдържание}"), можете директно да “изхвърлите” горния frame в случаите, когато ви се налага да пестите екранна площ навсякъде в самия сайт, но желаете да оставите допълнително разкрасена “фасадата”. | |