根据链接内的参数更改文本-例如。名称欢迎词

时间:2019-04-06 22:26:06

标签: javascript jquery

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

我正在通过电子邮件或与我们的锦标赛的Messenger链接发送给我的朋友。 在此网站上,我想通过自定义消息来欢迎他们。 但是它们每个都有单独的链接,例如:

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

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

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

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

1 个答案:

答案 0 :(得分:0)

因此,基本上,您要做的是为向每个访问者发送一个自定义的问候消息,向他发送自定义的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 .. etc等的朋友。

希望这会有所帮助。