将变量从"pretty"URL


Passing variables to Javascript from "pretty" URL

我的问题是,我想为访问者创建"漂亮"的url,看起来像这样:

http://domain.com/Name

我有一些用户经常向我的服务发送朋友,我已经为每个用户创建了定制页面,并在标题中添加了该人的名字。例如,"John,这里有一个简单的方法来修复这个小部件"

然后将页面保存为自定义文件夹中的index.html文件,因此自定义页面的链接结构是域名/名称,名称是他们的名字。

这是越来越乏味,我想使用Javascript自动化的过程。然而,我能找到的关于将变量传递给Javascript的唯一文档涉及"丑陋"的域,如domain/jspass2.html?FirstName=John&LastName=Smith

是否有一种方法来美化这些域,仍然传递变量的javascript代码,输入他们的名字到html代码?我不想"掩盖"一个丑陋的域(例如使用href)

谢谢你的帮助!

嗯,您可以通过使querystring更干净来使它"更漂亮"。

的例子:史密斯http://www.domain.com/?John

索引文件中的javascript可以读取它

var getQueryString = function() {
    queryString = window.location.search;
    queryStringCleaned = queryString.substring(queryString.indexOf('?') + 1 );
    return queryStringCleaned;
};

如果"http://domain.com/Name"是你的域名,变量firstName的值将是"Name"

var firstName = window.location.pathname.match(/(['w-]+)'/?.*/)[1];

你可以在JS中获取整个URL,然后"手工"解析它。使用这个正则表达式(例如)来查找传递的参数。

除了Paul之外,我还编写了一些代码,从您提供的url中提取名字字段。如果格式一致,并且可以用javascript格式获取url,则可以使用此格式。您可能必须先创建页面,然后重定向用户,因为javascript是客户端语言,页面已经呈现。

var url = "domain/jspass2.html?FirstName=John&LastName=Smith";
url = url.slice(url.indexOf("FirstName=") + 10, url.length);
url = url.slice(0, url.indexOf("&"));