Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как выполнить действие если в строке адреса есть определенный аргумент (https://javascript.ru/forum/events/83071-kak-vypolnit-dejjstvie-esli-v-stroke-adresa-est-opredelennyjj-argument.html)

firsmember 06.09.2021 21:33

Как выполнить действие если в строке адреса есть определенный аргумент
 
Доброго времени уважаемые гуру JS кода!

При загрузке страницы нужно проверить если в адресе страницы https://blabla.ru/?status=send есть ?status=send (при этом в адресе страницы может быть много всякого в том числе и другие аргументы, а может и не быть ничего кроме адреса сайта)

То изменить класс блоку который есть в коде этой страницы с sekrethide на sekretshow и показать alert c выполненным php кодом
<?php pll_e( 'Please fill all the forms field before sending!' ) ?>


Подскажите пожалуйста решение...

ksa 06.09.2021 21:48

Цитата:

Сообщение от firsmember
нужно проверить если в адресе страницы https://blabla.ru/?status=send есть ?status=send

https://javascript.ru/window-location

Берешь
window.location.search

Убираешь "?" в самом начале...

Потом разделяешь на пары <ключ>=<значение>
https://javascript.ru/string/split

Остается только выполнить поиск нужной пары в массиве
https://learn.javascript.ru/array-me...oisk-v-massive

ksa 06.09.2021 21:50

Или вот еще варианты...
https://codernotes.ru/articles/javas...avascript.html

voraa 06.09.2021 22:34

if (new URLSearchParams(window.location.search).getAll('status').includes('send')) {
// Есть status=send
}

Azazaza 07.09.2021 22:38

Примерно так
if((new URL(window.location.href)).searchParams.get('status') === 'send'){
    const sekretBlock = document.querySelector('.sekrethide');
    sekretBlock.classList.remove('sekrethide');
    sekretBlock.classList.add('sekretshow');
    fetch('https://blabla.ru/file.php').then(function(response){
        alert(response);
    });
}

voraa 07.09.2021 23:03

Цитата:

Сообщение от Azazaza
Примерно так
if((new URL(window.location.href)).searchParams.get('statu s') === 'send'){

В общем случае недостаточно
Цитата:

Сообщение от firsmember
при этом в адресе страницы может быть много всякого

А если там ?status=ok&satus=send...
Поэтому надежнее
.getAll('status').icludes('send')


Часовой пояс GMT +3, время: 11:17.