仅在页面网址包含特定字词时显示文本

时间:2018-07-26 08:18:27

标签: javascript php joomla

仅当URL包含特定单词时,我才需要在一页上显示一些文本。我尝试了一些在stackoverflow上发现的示例,但似乎无济于事。

所以我需要在此URL上显示文本-“ /index.php?option=com_registration&task=register”

我试图编写代码以识别URL中的单词“注册”,但是它不起作用。该文本在所有页面上均可见。

编辑:我要显示的文字是“创建帐户会自动将您置于我们的双月通讯电子邮件列表中。请注意:您可以随时退订。”

它应该位于页面上每个内容的前面。

3 个答案:

答案 0 :(得分:3)

您可以使用URL API解析浏览器的位置URL,然后搜索task参数的值。如果它与register相匹配,则执行逻辑以显示文本。

var url = new URL(window.location.href);

if (url.searchParams.task === 'register') {
  // perform logic to show the text
}

请注意,URL API在Internet Explorer中不可用。在这种情况下,您需要手动解析URL参数,或者使用第三方库,例如URI.js

答案 1 :(得分:2)

您的URL是-“ /index.php?option=com_registration&task=register” 如果您使用php

<?php 
  $check = $_GET['task'];
  if(isset($check)){
     #do something...
  }
?>

重点是从url获取查询并检查是否已设置,您正在使用GET方法进行此操作,因此将使用$ _GET ['parameterName']进行处理,变量$ check将为参数赋值值

答案 2 :(得分:0)

我真的很喜欢@ 31piy的答案,尽管如果您必须支持Internet Explorer并且不想仅为了简单的URL匹配而添加整个库,则可以始终使用良好的旧正则表达式甚至indexOf

例如,您可以只使用RegEx进行“注册”或“任务=注册”。

如果您想进行简单比较(例如包含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
}

有关正则表达式的更多信息,我强烈建议使用诸如this one之类的解释工具。