客户端URL对超链接中的查询参数进行编码

时间:2012-01-27 19:10:56

标签: html forms http get urlencode

如何编码显示为超链接的URL的查询参数。

此类超链接的示例:

<a href="http://site/page.html?param1=value1&param2=value2">MyPage</a>

我希望只使用html功能来执行此操作。

我可以使用 http get 方法使用html表单部分完成此操作,但之后我无法看到超链接,而是必须使用提交按钮(我不想使用):

<form method="get" action="http://site/page.html"> MyPage
 <input type="hidden" name="param1" value="value1"/>
 <input type="hidden" name="param2" value="value2"/>
 <input type="submit" />
</form>

请注意,查询参数的值是动态呈现的,因此可以包含特殊字符,必须在通过http get方法将它们发送到Web服务器之前对其进行编码。

这可以仅使用HTML来完成而无需在服务器端编码中引入代码吗?

3 个答案:

答案 0 :(得分:0)

您可以通过调用encodeURIComponent()使用Javascript来完成此操作。

但是,您应该在服务器上执行此操作,以支持禁用Javascript的浏览器。

答案 1 :(得分:0)

  

这可以仅使用HTML来完成而无需在服务器端编码中引入代码吗?

没有。链接采用URI。没有办法判断%是否表示编码字符的开头或文字%

如果要动态构建链接,那么您已经涉及编程语言。在任何语言中添加编码路由都是微不足道的。

答案 2 :(得分:0)

您可以将按钮设置为看起来像超链接:

input.LinkButton {
    border: none;
    padding: 0;
    background: transparent;
    color: blue;
    text-decoration: underline;
    display: inline;
    cursor: pointer;
}

您可能还需要:hover:active个样式。