Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Link + отображение слоев


Автор: stoutenko 21.3.2007, 15:50
Люди подскажите как организовать такую вещь:

На одной странице (допустим - page1.html) есть 4 слоя (по умолчанию 1-й отображается, а другие скрытые). Также на всех страницах есть ссылка на эту страницу не из меню.

Есть меню (на странице page1.html):
 ----------------------
|    кнопка меню  |  при нажатии действует onClick="showmenu_01()" и открывается подменю
 ----------------------
подменю - пункт 1 здесь ссылка на скрытый слой1, также onClick="showdiv_01()"
подменю - пункт 2 здесь ссылка на скрытый слой2, также onClick="showdiv_02()"
подменю - пункт 3 здесь ссылка на скрытый слой3, также onClick="showdiv_03()"

Это меню присутствует на всех страницах, но такие ссылки только на page1.html.

Неохота в каждую другую страницу загонять эти скрытые слои, да и весить она будет больше, короче они есть только на этой странице. Если пользователь выбрал "подменю - пункт2" с любой страницы (кроме page1.html) например, то как перейти на ту страницу (page1.html) и сразу открыть слой-2, а если юзер нажал просто ссылку на страницу (page1.html), то попадая на нее грузится по умолчанию 1 слой.

Заранее спасибо всем кто ответит.
 

Автор: lexxICON 21.3.2007, 18:21
Передавать как параметр в запросе на страницу page1.html. Ну и считывать потом из window.location.search, естественно. Можно и куки задействовать, хотя, наверное, это будет излишним.

........./page1.html?show_3

Автор: stoutenko 21.3.2007, 19:43
Спасибо... А можно по подробнее про свойство window.location.search... исходя из моего примера

Автор: lexxICON 21.3.2007, 22:46
Схематичный пример. 
В файле 1.htm сохраняем 
Код

<script>
    
    window.onload = function () { 
    
        var l = window.location.search;
        
        if (/show_3/i.test(l)) { 
            alert("отобразим слой #3");
            //showdiv_03()
        } else if (/show_2/i.test(l)) { 
            alert("отобразим слой #2");
            //showdiv_02()
        } else { 
            alert("иначе покажем по умолчанию слой #1");
            //showdiv_01()
        }
    }
    
</script>


в файле 2.htm:
Код

<a href="1.htm?show_3">открыть 1.htm и показать слой#3</a>



Если нужна быстрота, то заместо ожидания onload можно скрипт сразу за боди кинуть или расположить за последним слоем.. ну или тому подобное что-нибудь..

Автор: stoutenko 26.3.2007, 12:03
Спасиб lexxICON.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)