Мне нужно отображать текст на одной странице только в том случае, если URL-адрес содержит определенное слово. Я пробовал несколько примеров, которые нашел в stackoverflow, но, похоже, ничего не работает.
Поэтому мне нужно показать текст на этом URL - "/index.php?option=com_registration&task=register"
Я попытался написать код для распознавания слова «зарегистрироваться» в URL-адресе, но это не сработало. Текст виден на всех страницах.
Обновлено: текст, который я хочу показать, звучит так: «Создание учетной записи автоматически помещает вас в наш список рассылки, который выходит раз в два месяца. Обратите внимание: вы можете отказаться от подписки в любое время».
И он должен располагаться перед каждым контентом на странице.
@Dumisani Я пробовал несколько примеров, и текст всегда виден на каждой странице. И мне нужно, чтобы он был виден только на странице, где URL содержит слово "регистр"



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете проанализировать URL-адрес местоположения браузера с помощью URL API, а затем выполнить поиск по значению параметра task. Если он соответствует register, выполните логику для отображения текста.
var url = new URL(window.location.href);
if (url.searchParams.task === 'register') {
// perform logic to show the text
}
Обратите внимание, что API URL недоступен в Internet Explorer. В этом случае вам нужно проанализировать параметры URL вручную или использовать стороннюю библиотеку, например URI.js.
ваш URL - "/index.php?option=com_registration&task=register" если вы делаете это с помощью php
<?php
$check = $_GET['task'];
if (isset($check)){
#do something...
}
?>
Дело в том, чтобы взять запрос с URL-адреса и проверить, установлен ли он, вы делаете это с помощью метода GET таким образом, поэтому вы возьмете его с помощью $ _GET ['parameterName'], переменная $ check будет иметь значение, присвоенное параметру.
можешь дать мне весь код? Я получаю эту ошибку: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_STRING в *** в строке 75
Это все, что вам нужно ------------ попробуйте использовать $ _REQUEST ['task'] вместо $ _GET ['task']
Спасибо! Это сработало! :) <? php $ check = $ _GET ['задача']; if (isset ($ check)) {}?>
В Joomla есть вспомогательные методы, помогающие разработчикам поддерживать безопасность сайта. $_GET не следует использовать в приложении Joomla.
Мне очень нравится ответ @ 31piy, хотя, если вам нужно поддерживать Internet Explorer и не хотите добавлять целую библиотеку только для простого сопоставления URL-адресов, вы всегда можете использовать старые добрые регулярные выражения или даже indexOf.
В вашем примере вы можете просто использовать RegEx для «зарегистрировать» или «task = register».
Если вы хотите провести простое сравнение (например, содержит task=register), я бы выбрал сравнение строк:
if (window.location.href.indexOf('task=register') !== -1) {
// show text here
}
Если вы хотите быть более гибкими в отношении сопоставления, вы должны использовать RegEx:
var regex = /task=register/;
if (regex.test(window.location.href)) {
// show text here
}
Для получения дополнительной информации о регулярных выражениях я настоятельно рекомендую использовать пояснительный инструмент, такой как Вот этот.
Это должно быть сделано на стороне сервера, а не на клиенте, одна из причин - поддержка браузерами.
Что вы имеете в виду под «текст виден на всех страницах»?