【问题标题】:Change text based on parameter within link - ex. welcome message with name根据链接中的参数更改文本 - 例如。带有名字的欢迎信息
【发布时间】:2025-12-09 08:15:02
【问题描述】:

我在创建简单脚本时遇到问题。 当用户单击特别准备的链接时,我正在尝试触发文本更改。

我正在通过电子邮件或信使向我的朋友发送我们锦标赛网站的链接。 在这个网站上,我想通过自定义消息欢迎他们。 但他们每个人都有单独的链接,如:

www.mywebsite.com/#john1
www.mywebsite.com/#john2

所以当前。其中一个通过链接访问网站:

www.mywebsite.com/#john1

我想为他显示自定义消息。自定义标题。 但是当其他朋友通过链接访问网站时:

www.mywebsite.com

一切都是默认的。无需更改此标题。

有什么简单的方法可以实现吗?

我试图用 jquery 实现类似 onclick 事件的东西。为所有这些设置文本,然后通过 mywebsite.com/#john1 等访问它们 但看起来这是一个坏主意,因为在将参数添加到链接时这不起作用。 仅当点击网站上的元素时。

我尝试过这样的事情:

$(function() {
    $("#john1, #john2").on("click", function(e) {
        var txt = "";
        switch ($(this).prop("id")) {
            case "john1":
                txt = "Hi john 1";
                break;
            case "john2":
                txt = "Hi John 2";
                break;
        }
        $("#h1-title").text(txt);
    })
})

而不是像这样访问:www.mywebsite.com/#john2

但我知道这不是一个好的用例。

【问题讨论】:

  • 我不确定我是否理解,但您可以使用“window.location.pathname”检查当前链接,然后根据当前值执行任何您想要的操作。
  • @AhmedHammad 感谢您的留言。对不起,如果你不能理解它。我解决了我的问题,希望现在这很清楚。我用 window .location.pathname 看了你的建议,但老实说不知道这如何帮助我解决我的问题。我想要最多 10 条自定义消息,这样我的好友就可以访问网站,并为每个人提供单独的自定义信息。

标签: javascript jquery


【解决方案1】:

所以基本上你要做的是为每个访问者定制一个问候消息,你给他发送一个定制的 URL,但不显示普通 URL 的消息。

这可以按如下方式完成:

  1. 定义自定义 URL 的格式。 www.mywebsite.com#john1 看起来很好。 (注意哈希前没有斜线!不是子目录。
  2. 具有确定访问者姓名的函数:
function getVisitorName(){
    let name = window.location.href;
    let indexOfHash = name.indexOf('#');
    if(indexOfHash === -1){return null;}
    name = name.slice(indexOfHash+1, name.length)
    return name;
  }
  1. 现在,根据您喜欢的事件调用此函数。 (例如页面加载):
$(document).ready(()=>{
    let name = getVisitorName;
    if (name === null) {return;}
    let message = "Hi " + name + " !";
    $("#h1-title").text(message);
  })
  1. 将链接发送给自定义为www.mywebsite.com#John1www.mywebsite.com#John2..等的朋友。

希望这会有所帮助。

【讨论】:

  • 感谢您的解决方案,但我遇到了问题。但是一直在哈希之前添加斜线。另外,当我尝试对其进行测试时,我在标题中获得了 getVisitorName 函数,而不是自定义消息。我已经毫无问题地声明了 jquery,因为我使用了其他自定义的东西并且一切正常。 Plus 代码在我的一个自定义 js 文件中声明。
  • 我忘了补充,我正在使用 Mamp 在本地测试这个
  • 1- 斜线在这里不起作用。斜杠是 URL 语义的一部分,告诉浏览器进入另一个子页面,这里不是这样。
  • 2-“我在标题中获取 getVisitorName 函数而不是自定义消息”是什么意思?您可能没有以正确的方式调用该函数?
  • 是的,我知道斜杠不起作用。但在这种情况下,斜线始终包含在内。当我试图通过 localhost/website#john 访问它时,我在浏览器中得到了这个: localhost/website/#john 关于获取功能是这对我不起作用。我试图把所有东西放在一起,但我无法让这段代码工作。总是在一个标题的地方这显示我整个访问者的功能作为一个标题。
最近更新 更多