我有一个需要映射到特定格式的网址,其中一些斜杠应保留为%20f。例如:
http://myUrl.com/section1/section2/section%2fnamewithslash/?somequery=1
这样的网址应该将%2f保留在部分名称中。不幸的是,我无法更改此设置以删除部分名称中的斜杠。
问题在于,当我调用window.location.replace时,它会将%20f更改为斜杠,从而抛出链接。
你可以在这里看到一个小提琴示例https://jsfiddle.net/Kolichikov/k480rnff/ 要查看我的意思,请点击链接,然后右键单击结果框并单击查看框架源。您将在浏览器中看到该网址。
所以我的问题是如何在不解码链接的情况下用url替换当前资源?
感谢您的帮助。
答案 0 :(得分:1)
执行onclick事件,而不是处理<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="select_month">
<?php
if (isset($_POST['select_month'])) {
if($_POST["select_month"] == "January"){
echo '<option value="January" selected="selected">January</option><option value="February">February</option>';
}
elseif($_POST["select_month"] == "February"){
echo '<option value="January">January</option><option value="February" selected="selected">February</option>';
}
}
else{
echo '<option value="January">January</option><option value="February">February</option>';
}
?>
</select>
<input name="submit_button" type="submit" value="Search Month">
</form>
中的链接。
href
在<script>
<a href="#" onclick="window.location.replace('http://myUrl.com/section1/section2/section%2fnamewithslash/?somequery=1');">
</script>
属性中使用javascript的一个优点是,它将在状态栏中显示链接,而不是运行脚本。
答案 1 :(得分:1)
也许这会做你想要的?
https://jsfiddle.net/ewzvnbre/3/
<a href="javascript:redirect()">
Go to Link
</a>
<script>
function redirect(){
window.location.replace('http://somehost.xyzas/section1/thing%2fwith%20slash/?qsp=1')
}
</script>