HTML:锚定标记在表单GET请求中转换为%23
我有一个html表单,我试图在其GET请求中使用锚标签,以便用户将被发送到页面的特定部分。 我有这样设置:
<form action="www.website.com/page/" method="get">
<select name="foo">
<option value="bar#myAnchor">Sample</option>
</select>
<input type="submit" value="Submit" />
</form>
用户被重定向到www.website.com/page/?foo=bar%23myAnchor。
相反,我想通过直接链接链接获得与用户相同的结果
我一直无法找到问题,但它似乎是一个浏览器问题,因为我无法用html实体或任何其他替代编码解决它。
你怎么看?
我认为你必须使用JavaScript。 一个简单的实现可能看起来像这样。
function goToUrl(){
var url = 'http://' + window.location.hostname + '/' + document.querySelector('#urlSelector').value;
window.open(url);
//you could set window.location.href as well
}
<select id="urlSelector">
<option>bar#myAnchor</option>
</select>
<button onclick="goToUrl()">Submit</button>
这是预料之中的。 每当我们提交表单时,这些值都是URL编码的。 因此,就你的情况而言,当表单被提交时,URL变成了
www.website.com/page/?foo=bar%23myAnchor
如果你打开网络标签,你可以看到这是foo = bar#myAnchor的编码版本
如果您只想让用户转到链接,请使用锚标签并根据您的逻辑更改href属性。
希望有所帮助!
链接地址: http://www.djcxy.com/p/89013.html上一篇: HTML: Anchor tag is converted to %23 on form GET request