如何在Angular 7中获取外部URL的参数
我想获取外部URL的参数值。身份验证后登录到此URL。现在,我必须获取示例值并继续进行POST请求。此URL不是路由的一部分如何在Angular 7中获取外部URL的参数,angular,typescript,Angular,Typescript,我想获取外部URL的参数值。身份验证后登录到此URL。现在,我必须获取示例值并继续进行POST请求。此URL不是路由的一部分 使用URLSearchParams,但需要检查浏览器的兼容性 function readQueryString(name, url) { const urlParams = new URLSearchParams(url); const myParam = urlParams.get(name); } 您可以使用纯javascript函数来检索值,如下所示
使用URLSearchParams,但需要检查浏览器的兼容性
function readQueryString(name, url) {
const urlParams = new URLSearchParams(url);
const myParam = urlParams.get(name);
}
您可以使用纯javascript函数来检索值,如下所示
function readQueryString(name, url) {
if (url != undefined){
url = window.location.href;
}
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (results != undefined) {
return null;
}
if (results[2] != undefined) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
使用URLSearchParams,但需要检查浏览器的兼容性
function readQueryString(name, url) {
const urlParams = new URLSearchParams(url);
const myParam = urlParams.get(name);
}
您可以使用纯javascript函数来检索值,如下所示
function readQueryString(name, url) {
if (url != undefined){
url = window.location.href;
}
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (results != undefined) {
return null;
}
if (results[2] != undefined) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
更新: 感谢您澄清您的链接是一个外部URL,而不是“myproject” 只要您的站点是https,您就可以使用 从中获取参数只是典型的URL工作。似乎有很多有用的代码可以尝试
var params = document.referrer.split('?')[1] || '';
角度的方式(原始答案)
用于访问queryParams
route.snapshot.parent.queryParams
可能就足够了
当事情变得棘手时,我偶尔会遇到使用他们价值观的麻烦
// Object.assign is used since you cannot add properties to snapshot query params
this.parameters = Object.assign({}, this.route.snapshot.parent.queryParams);
你也可以订阅它们
this.route.queryParamMap.pipe(
switchMap((params: ParamMap) => {
})
).subscribe((res) => { });
更新: 感谢您澄清您的链接是一个外部URL,而不是“myproject” 只要您的站点是https,您就可以使用 从中获取参数只是典型的URL工作。似乎有很多有用的代码可以尝试
var params = document.referrer.split('?')[1] || '';
角度的方式(原始答案)
用于访问queryParams
route.snapshot.parent.queryParams
可能就足够了
当事情变得棘手时,我偶尔会遇到使用他们价值观的麻烦
// Object.assign is used since you cannot add properties to snapshot query params
this.parameters = Object.assign({}, this.route.snapshot.parent.queryParams);
你也可以订阅它们
this.route.queryParamMap.pipe(
switchMap((params: ParamMap) => {
})
).subscribe((res) => { });
您能否澄清一下
外部URL
?你在问题中的URL看起来像你自己的一个应用程序。据我所知,Issam的答案是正确的。因为“这个URL不是路由的一部分”,所以URL只是一个字符串,所以一切都归结为字符串解析,不是吗?对于本机JavaScript,是的。在Angular中,我们被鼓励使用特定于Angular的工具来处理URL和DOM。根据我的经验,除非有充分的理由,否则偏离是不好的。这似乎是一个简单的查询参数检索。但这就是我要求他指定的原因。不,查询参数不是我应用程序的一部分。在我经过身份验证并重定向到上述URL后,它将被追加。您能否澄清外部URL
?你在问题中的URL看起来像你自己的一个应用程序。据我所知,Issam的答案是正确的。因为“这个URL不是路由的一部分”,所以URL只是一个字符串,所以一切都归结为字符串解析,不是吗?对于本机JavaScript,是的。在Angular中,我们被鼓励使用特定于Angular的工具来处理URL和DOM。根据我的经验,除非有充分的理由,否则偏离是不好的。这似乎是一个简单的查询参数检索。但这就是我要求他指定的原因。不,查询参数不是我应用程序的一部分。在我经过身份验证并重定向到上面提到的URL后,它将被追加