Внешняя ссылка на "страницу", которая на самом деле является div, становится видимой по клику

У меня есть простой сайт, на котором всего пара страниц, включая "биржевики" и "контакты". Я думал, что я был хитрым, делая их как div, которые скрываются при загрузке главной страницы и открываются при нажатии на соответствующий пункт меню, используя 'onclick="showStockists()", который запускает функцию, которая в основном просто изменяет div Непрозрачность & Z-индекс.

Все это работает и выглядит великолепно, как есть, но вроде как провалилось, когда я понял, что не думаю, что могу ссылаться на эти "состояния" извне, то есть отправлять кому-то ссылку на страницу биржевых компаний. Есть ли способ иметь ссылку, такую ​​как mysite.com/stockists, которая каким-то образом при загрузке страницы будет запускать функцию showStockists ()? Или я сплю и сделал это очень замысловато.

Если это помогает, вот как у меня это получается (так как эта функция также скрывает боковое меню, которое скрывается при загрузке страницы и открывается гамбургером, и скрывает контактную страницу, если она видна):

HTML:

<div class="menuItem" onclick="showStockists(); closeNav();">STOCKISTS</div>

JS:

function showStockists() {
sideMenu.style.visibility = "hidden";
stockists.style.opacity=1;
stockists.style.zIndex=2;
contact.style.opacity=0;
}

1 ответ

Решение

Вы можете сделать это, используя строку запроса: mysite.com/?stockists=1

$( document ).ready(function() {
    var stockists = getParameterByName('stockists');
    if(stockists==1)
       showStockists();
});

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}
Другие вопросы по тегам