Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将变量从";传递到Javascript;“漂亮”;统一资源定位地址_Javascript_Php_Jquery_Html_Url - Fatal编程技术网

将变量从";传递到Javascript;“漂亮”;统一资源定位地址

将变量从";传递到Javascript;“漂亮”;统一资源定位地址,javascript,php,jquery,html,url,Javascript,Php,Jquery,Html,Url,我的问题是,我想为访问者创建“漂亮”的URL,如下所示: 我有一些用户经常向我的服务发送朋友,并且我已经为每个人创建了自定义页面,标题中有该人的名字。例如,“John,这里有一个修复此小部件的简单方法” 然后,我将页面保存为自定义文件夹中的index.html文件,以便自定义页面的链接结构为域名,名称为其名字 这变得越来越乏味,我希望使用Javascript来自动化这个过程。然而,我能找到的关于向Javascript传递变量的唯一文档涉及“丑陋”的域,如domain/jspass2.html?

我的问题是,我想为访问者创建“漂亮”的URL,如下所示:

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

然后,我将页面保存为自定义文件夹中的index.html文件,以便自定义页面的链接结构为域名,名称为其名字

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

有没有一种方法可以美化这些域,并且仍然将变量传递给javascript代码,将它们的名称输入到html代码中?我不想“掩盖”一个丑陋的域名(例如使用a href)


谢谢你的帮助

您只需将整个URL放在JS中,然后“手动”解析即可。使用regex(例如)查找传递的参数

除了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("&"));
嗯,你可以通过让查询字符串更干净来让它“更漂亮”

例如:

索引文件中的javascript可以读取这些内容

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

    return queryStringCleaned;
};
如果“”是您的域,则变量firstName的值为“Name”


如果您的web服务器是Apache,请使用。鉴于您使用PHP标记了此问题,我建议您也使用此服务器端。不过,我们需要了解一下您的设置,以提供一个适合您的答案。我想这会有用的。我只需要第一个名字,所以看起来像。您能告诉我一些关于如何将该变量拉入javascript的信息吗?为了让我能把我的头绕在它周围,问号在普通URL和变量之间划出了界限,对吗?你不能告诉javascript有多少个字符,然后变量就开始了吗?例如,域将始终是相同的。你能告诉它在11个字符后开始阅读吗?queryString.indexOf(“?”)等于问号在url中的位置。子字符串将从问号后的位置到结尾抓取url的内容。最好使用这个,而不是说11个字符,因为它说明了url中可能发生的变化(即使是相同的)。防守!
var firstName = window.location.pathname.match(/([\w-]+)\/?.*/)[1];