Как автоматически открыть вкладку при переходе с другого сайта? - PullRequest
0 голосов
/ 18 июня 2020

На данный момент у меня есть сайт с таблицей элементов. У этих элементов есть несколько подэлементов. И у меня есть второй сайт, на котором я могу видеть элемент и множество вкладок для подэлементов. Я вызываю сайт в данный момент таким образом:

<a class="dropdown-item" role="presentation" asp-controller="Scenario" asp-action="SimulationEvaluation">Auswerten</a>

Итак, элемент - это симуляция, а подэлементы - результаты симуляции. Вкладки и функция на второй странице выглядят следующим образом:

<div class="tab" style=" border: none; overflow:hidden">
                <button class="tablinks" onclick="openTab(event, 'Ergebnis-1')" id="defaultOpen">Ergebnis-1</button>
                <button class="tablinks" onclick="openTab(event, 'Ergebnis-2')">Ergebnis-2</button>
                <button class="tablinks" onclick="openTab(event, 'Ergebnis-3')">Ergebnis-3</button>
            </div>

<div id="Ergebnis-1" class="tabcontent">
    ......
</div>
<div id="Ergebnis-2" class="tabcontent">
    ......
</div>
<div id="Ergebnis-3" class="tabcontent">
    ......
</div>

<script>

    document.getElementById("defaultOpen").click();

    function openTab(evt, name) {
        // Declare all variables
        var i, tabcontent, tablinks;

        // Get all elements with class="tabcontent" and hide them
        tabcontent = document.getElementsByClassName("tabcontent");
        for (i = 0; i < tabcontent.length; i++) {
            tabcontent[i].style.display = "none";
        }

        // Get all elements with class="tablinks" and remove the class "active"
        tablinks = document.getElementsByClassName("tablinks");
        for (i = 0; i < tablinks.length; i++) {
            tablinks[i].className = tablinks[i].className.replace(" active", "");
        }

        // Show the current tab, and add an "active" class to the button that opened the tab
        document.getElementById(name).style.display = "block";
        evt.currentTarget.className += " active";
    }
</script>

Теперь мой вопрос: когда я нажимаю на подэлемент в таблице Первая страница, я хочу, чтобы соответствующая вкладка открывалась автоматически. Поэтому, когда я нажимаю на Simulation-1, Result-3 для примера, я хочу, чтобы предварительно открылась вкладка Result-3-Tab. Это возможно? ^^

1 Ответ

0 голосов
/ 18 июня 2020

На первом сайте вы должны настроить такие ссылки

<a href="secondsite.com?tab=Simulation-1">Simulation-1</a>
<a href="secondsite.com?tab=Result-3">Result-3</a>

А на втором веб-сайте вы должны добавить этот javascript код внутри document.ready:

const urlParams = new URLSearchParams(window.location.search);
const tabName = urlParams.get('tab');

if (tabName){
 document.querySelector('[onclick*=' + tabName + ']').click();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...