经典ASP:如何重新加载页面,保留URL参数并添加新参数?



我正在使用"多语言页面" - 我想更改语言并保留页面中的所有 url 参数 - 因为页面正在使用此值。

前任:

page.com/demo.asp?name=John&color=Blue

如果用户单击语言并更改我需要的语言:

1- 发送新参数 -

在这里我猜 - 最好的方法是发送另一个参数,如下所示:

page.com/demo.asp?name=John&color=Blue&lang=ES

右?

然后我使用此 URL 在"ES"选项上创建一个链接。

> create_url =
> Request.ServerVariables("URL")&"?"&Request.ServerVariables("Query_String")
> new_url = REPLACE(create_url, "&lang=", "&newlang=")

REPLACE 的工作原理是避免在用户多次更改语言时在 url 上出现多个"&lang"。

和 HTML:

<a href="<%=new_url%>&lang=ES">ES</a>
<a href="<%=new_url%>&lang=EN">EN</a>
<a href="<%=new_url%>&lang=PT">PT</a>
<a href="<%=new_url%>&lang=FR">FR</a>

当我单击链接时 - 页面重新加载 - 所有参数仍然有效 - 我现在可以添加"LANG"。

但。。。

我的问题:

如果我在 URL 中没有一个参数 - 并且"&LANG"是第一个

我有一个错误...

因为我会通过这个:

page.com/demo.asp?&LANG=ES

正确的方法是

page.com/demo.asp?LANG=ES

没有"&">

知道吗?

很多!! 丹尼尔

也许将replace与这种正则表达式一起使用:

https://regex101.com/r/MRmZ00/3

(.*[?&]lang=)[A-Z]{2}(.*)

输出 :'$1' + newlang + '$2'

如果它是您唯一的参数或您的第一个参数?lang=ES或 url&lang=ES中的其他任何地方,则可以工作。

URI.js是一个用于处理URL的JavaScript库。它提供了一个"jQuery风格"的API(Fluent Interface,Method Chaining)来读取和写入所有常规组件以及许多方便的方法,如.directory()和.authority()。

这是链接

这是示例:

URI(location.href).addQuery("lang", languageName);

最新更新