从解码url字符串中停止window.location.replace

时间:2017-01-30 20:03:55

标签: javascript url

我有一个需要映射到特定格式的网址,其中一些斜杠应保留为%20f。例如:

http://myUrl.com/section1/section2/section%2fnamewithslash/?somequery=1

这样的网址应该将%2f保留在部分名称中。不幸的是,我无法更改此设置以删除部分名称中的斜杠。

问题在于,当我调用window.location.replace时,它会将%20f更改为斜杠,从而抛出链接。

你可以在这里看到一个小提琴示例https://jsfiddle.net/Kolichikov/k480rnff/ 要查看我的意思,请点击链接,然后右键单击结果框并单击查看框架源。您将在浏览器中看到该网址。

所以我的问题是如何在不解码链接的情况下用url替换当前资源?

感谢您的帮助。

2 个答案:

答案 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>