включить файл меню активная страница цветная ссылка в ASP - PullRequest
0 голосов
/ 09 ноября 2018

У меня слишком много страниц. когда я что-то меняю в меню, мне приходится менять каждую страницу. Я не хочу снова и снова писать меню навигации для каждой страницы, поэтому я использовал меню навигации по файлам. Я не слишком много знаю, но хочу его использовать.

Navigation.inc образец:

<a class="nav-link active" href="link1.asp">Link 1</a>
<a class="nav-link" href="link2.asp">Link 2</a>

есть класс с именем active. закрашивает навигационную ссылку синим цветом. когда я перехожу на страницу link2, я хочу сделать это

<a class="nav-link" href="link1.asp">Link 1</a>
<a class="nav-link active" href="link2.asp">Link 2</a>

как я могу это сделать с asp classic? Я пробовал что-то, но это выглядит смешно. Есть ли простой и профессиональный способ?

спасибо за всю информацию.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Используйте <!--#include virtual="/PathToYour/Page/navigation.asp"--> на странице, где вы хотите, чтобы появилась ваша страница navigation.

navigation.asp:

<a class="nav-link" href="link1.asp">Link 1</a>
<a class="nav-link" href="link2.asp">Link 2</a>

А затем с помощью jQuery автоматизируйте ваш класс "active" или "currentPage" для ссылок.

<script>
    $(document).ready(function () {
        //Loop through all <a href> elements and see if it matches current page, if it does add "active" class to that link
        $("a").each(function () {
            if ($(this).attr("href") === window.location.pathname) {
                $(this).addClass("active");
            } else if ($(this).attr("href") === window.location.href) {
                $(this).addClass("active");
            } else if ($(this).attr("href") === window.location.pathname + window.location.search) {
                $(this).addClass("active");
            }
        });
    });
</script>

образец home.asp (со всеми видами «шаблонов» --- верхний и нижний колонтитулы, функции и т. Д.):

<% Option Explicit %>
<!-- #include virtual="/local/scripts/vbs/settings.asp" -->
<!-- #include virtual="/global/scripts/vbs/db.asp" -->
<!-- #include virtual="/global/scripts/vbs/format.asp" -->
<!-- #include virtual="/global/scripts/vbs/pages.asp" -->

<!-- #include virtual="/global/shared/templates/inc-doctype.asp" -->
<html lang="en">

<head>
<title><%=PageTitle & gWebTitle%></title>
<meta name="description" content="<%=TitlePageHeading%>">
<!-- #include virtual="/global/shared/templates/inc-meta.asp" -->
<!-- #include virtual="/global/shared/templates/inc-styles.asp" -->
<!-- #include virtual="/global/shared/templates/inc-scripts.asp" -->
</head>
<body>

<!-- #include virtual="/local/scripts/templates/header.inc" -->

<%
    'Main Page Content Goes Here
%>

<!-- #include virtual="/local/scripts/templates/footer.inc" -->

<script>
    $(document).ready(function () {
        //Loop through all <a href> elements and see if it matches current page, if it does add "active" class to that link
        $("a").each(function () {
            if ($(this).attr("href") === window.location.pathname) {
                $(this).addClass("active");
            } else if ($(this).attr("href") === window.location.href) {
                $(this).addClass("active");
            } else if ($(this).attr("href") === window.location.pathname + window.location.search) {
                $(this).addClass("active");
            }
        });
    });
</script>

</body>

</html>
0 голосов
/ 09 ноября 2018

Добавьте включение на всех своих страницах:

<%
...
%>
<!--#include file="nav.asp"-->
<%
...
%>

А ваша nav.asp страница:

<%
curPageName = Request.ServerVariables("URL")

if curPageName = "link1.asp" then
    %>
    <a class="nav-link active" href="link1.asp">Link 1</a>
    <a class="nav-link" href="link2.asp">Link 2</a>
    <%
end if

if curPageName = "link2.asp" then
    %>
    <a class="nav-link" href="link1.asp">Link 1</a>
    <a class="nav-link active" href="link2.asp">Link 2</a>
    <%
end if
%>

Вы можете упростить свою страницу nav.asp, добавив пользовательскую функцию iif в vbscript

<%
function iif(condition, t, f)
    if condition then
        iif = t
    else
        iif = f
    end if
end function

curPageName = Request.ServerVariables("URL")
%>
<a class="nav-link<%=iif(curPageName = "link1.asp", " active", "")%>" href="link1.asp">Link 1</a>
<a class="nav-link<%=iif(curPageName = "link2.asp", " active", "")%>" href="link2.asp">Link 2</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...