Показывать текст, только если URL страницы содержит определенное слово

Мне нужно отображать текст на одной странице только в том случае, если URL-адрес содержит определенное слово. Я пробовал несколько примеров, которые нашел в stackoverflow, но, похоже, ничего не работает.

Поэтому мне нужно показать текст на этом URL - "/index.php?option=com_registration&task=register"

Я попытался написать код для распознавания слова «зарегистрироваться» в URL-адресе, но это не сработало. Текст виден на всех страницах.

Обновлено: текст, который я хочу показать, звучит так: «Создание учетной записи автоматически помещает вас в наш список рассылки, который выходит раз в два месяца. Обратите внимание: вы можете отказаться от подписки в любое время».

И он должен располагаться перед каждым контентом на странице.

Что вы имеете в виду под «текст виден на всех страницах»?

Dumisani 26.07.2018 10:33

@Dumisani Я пробовал несколько примеров, и текст всегда виден на каждой странице. И мне нужно, чтобы он был виден только на странице, где URL содержит слово "регистр"

VderKaiser 26.07.2018 10:35
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
623
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете проанализировать 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

VderKaiser 26.07.2018 10:34

Это все, что вам нужно ------------ попробуйте использовать $ _REQUEST ['task'] вместо $ _GET ['task']

Armin 26.07.2018 10:36

Спасибо! Это сработало! :) <? php $ check = $ _GET ['задача']; if (isset ($ check)) {}?>

VderKaiser 26.07.2018 10:43

В Joomla есть вспомогательные методы, помогающие разработчикам поддерживать безопасность сайта. $_GET не следует использовать в приложении Joomla.

mickmackusa 30.01.2020 08:55

Мне очень нравится ответ @ 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
}

Для получения дополнительной информации о регулярных выражениях я настоятельно рекомендую использовать пояснительный инструмент, такой как Вот этот.

Это должно быть сделано на стороне сервера, а не на клиенте, одна из причин - поддержка браузерами.

Armin 26.07.2018 10:40

Другие вопросы по теме