Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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
Html 超链接中查询参数的客户端URL编码_Html_Forms_Http_Get_Urlencode - Fatal编程技术网

Html 超链接中查询参数的客户端URL编码

Html 超链接中查询参数的客户端URL编码,html,forms,http,get,urlencode,Html,Forms,Http,Get,Urlencode,如何对显示为超链接的URL的查询参数进行编码 此类超链接的示例: <a href="http://site/page.html?param1=value1&param2=value2">MyPage</a> input.LinkButton { border: none; padding: 0; background: transparent; color: blue; text-decoration: underline

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

此类超链接的示例:

<a href="http://site/page.html?param1=value1&param2=value2">MyPage</a>
input.LinkButton {
    border: none;
    padding: 0;
    background: transparent;
    color: blue;
    text-decoration: underline;
    display: inline;
    cursor: pointer;
}

我只想使用html功能来实现这一点

我可以通过使用httpget方法的html表单部分实现这一点,但是我看不到超链接,只能使用提交按钮(我不想使用):

MyPage
请注意,查询参数的值是动态呈现的,因此可能包含特殊字符,这些字符必须在通过http get方法发送到web服务器之前进行编码


这可以只使用HTML而不需要在服务器端编码时引入代码吗?

您可以通过调用
encodeURIComponent()
使用Javascript来实现


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

您可以通过调用
encodeURIComponent()
使用Javascript执行此操作

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

是否可以只使用HTML而不需要在服务器端编码时引入代码

否。链接采用URI。无法判断
%
是指示编码字符的开头还是指示文字
%
的开头

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

是否可以只使用HTML而不需要在服务器端编码时引入代码

否。链接采用URI。无法判断
%
是指示编码字符的开头还是指示文字
%
的开头


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

您可以将按钮样式设置为超链接:

<a href="http://site/page.html?param1=value1&param2=value2">MyPage</a>
input.LinkButton {
    border: none;
    padding: 0;
    background: transparent;
    color: blue;
    text-decoration: underline;
    display: inline;
    cursor: pointer;
}

您可能还需要
:悬停
:活动
样式。

您可以将按钮样式设置为超链接:

<a href="http://site/page.html?param1=value1&param2=value2">MyPage</a>
input.LinkButton {
    border: none;
    padding: 0;
    background: transparent;
    color: blue;
    text-decoration: underline;
    display: inline;
    cursor: pointer;
}


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

即使使用表单,您仍然需要对它们进行HTML编码。为什么不使用按钮呢?对于表单,我认为enctype属性默认设置为application/x-www-form-urlencoded,这就做到了。我想看到超链接,没有按钮,因为我需要在一个页面上有多个这样的超链接,按钮看起来不会很好。如果HTML有一个类型为hyperlink或HREFEN的输入标记,那么按钮会很简单。即使表单中有,您仍然需要对它们进行HTML编码。为什么不想使用按钮?对于表单,我认为enctype属性默认设置为application/x-www-form-urlencoded,这就做到了。我想看到超链接,没有按钮,因为我需要在一个页面上有多个这样的超链接,而且按钮看起来不会很好。如果HTML有一个类型为hyperlink或hrefI的输入标记,那么按钮就不会这么简单了。我想OP希望从表单字段构建一个查询字符串并将其附加到操作(即构建get请求)我不知道OP想要什么,而是对单个字段进行uri编码。这个问题很让人困惑。很抱歉让你困惑,我现在已经简化了这个问题。我仍然不明白为什么你不能使用
标记。我认为OP想要从表单字段构建一个查询字符串,并将其附加到操作(即构建get请求)中,而不是对单个字段进行uri编码。我不知道OP想要什么。这个问题很让人困惑。很抱歉让你困惑,我现在已经简化了这个问题。我仍然不明白为什么你不能使用
标记。好的,它可以工作。但现在我在悬停显示下划线文本装饰时遇到问题。我搜索了整个互联网,似乎很多浏览器都不支持这个属性。我现在可能会遇到浏览器兼容性问题。好的,它可以工作了。但现在我在悬停显示下划线文本装饰时遇到问题。我搜索了整个互联网,似乎很多浏览器都不支持这个属性。我现在可能会遇到浏览器兼容性问题