仅当URL包含特定单词时,我才需要在一页上显示一些文本。我尝试了一些在stackoverflow上发现的示例,但似乎无济于事。
所以我需要在此URL上显示文本-“ /index.php?option=com_registration&task=register”
我试图编写代码以识别URL中的单词“注册”,但是它不起作用。该文本在所有页面上均可见。
编辑:我要显示的文字是“创建帐户会自动将您置于我们的双月通讯电子邮件列表中。请注意:您可以随时退订。”
它应该位于页面上每个内容的前面。
答案 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之类的解释工具。