Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.09.2021, 21:33
Кандидат Javascript-наук
Отправить личное сообщение для firsmember Посмотреть профиль Найти все сообщения от firsmember
 
Регистрация: 08.11.2019
Сообщений: 113

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

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

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


Подскажите пожалуйста решение...
Ответить с цитированием
  #2 (permalink)  
Старый 06.09.2021, 21:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от 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
Ответить с цитированием
  #3 (permalink)  
Старый 06.09.2021, 21:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Или вот еще варианты...
https://codernotes.ru/articles/javas...avascript.html
Ответить с цитированием
  #4 (permalink)  
Старый 06.09.2021, 22:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

if (new URLSearchParams(window.location.search).getAll('status').includes('send')) {
// Есть status=send
}
Ответить с цитированием
  #5 (permalink)  
Старый 07.09.2021, 22:38
Интересующийся
Отправить личное сообщение для Azazaza Посмотреть профиль Найти все сообщения от Azazaza
 
Регистрация: 08.11.2011
Сообщений: 19

Примерно так
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);
    });
}
Ответить с цитированием
  #6 (permalink)  
Старый 07.09.2021, 23:03
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

Сообщение от Azazaza
Примерно так
if((new URL(window.location.href)).searchParams.get('statu s') === 'send'){
В общем случае недостаточно
Сообщение от firsmember
при этом в адресе страницы может быть много всякого
А если там ?status=ok&satus=send...
Поэтому надежнее
.getAll('status').icludes('send')
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если класс есть на странице, значит выполнить код! FreeZon Общие вопросы Javascript 11 10.08.2014 21:37
Как проверить, есть ли скроллбар shaltay Events/DOM/Window 13 11.05.2014 10:53
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
как выполнить действие в зависимости от результата php FRIE jQuery 5 04.08.2010 08:44
как записать <form> с отправкой .. если есть уже <form> с другим обработчиком Arfey Серверные языки и технологии 9 01.06.2010 16:31