使用Javascript更改表单操作时IE中的错误,当method = get和URL包含哈希时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Javascript更改表单操作时IE中的错误,当method = get和URL包含哈希时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1769字,纯文字阅读大概需要3分钟。
内容图文
![使用Javascript更改表单操作时IE中的错误,当method = get和URL包含哈希时](/upload/InfoBanner/zyjiaocheng/815/f340e08e4dde44a0a101b8ac29c6410a.jpg)
我在提交表单时使用Javascript来更改表单的URL.如果该URL包含哈希字符串(#),则Internet Explorer会忽略它,并在此之前提交到html的一部分. Firefox和Chrome都很好.
示范:
<script type="text/javascript">
function changeURL() {
var myform = document.getElementById('myform');
myform.setAttribute("action", "page2.html#hello");
return false;
}
</script>
<form id="myform" action="page1.html" method="get" onsubmit="changeURL()">
<input type="submit">
</form>
如果我将方法更改为“帖子”,那就没关系.如果我使用“获取”,IE登陆page2.html但没有URL中的#hello.
无论我是使用jquery还是仅使用javascript,都会发生这种情况,尝试以下各项:
myform.action = "page2.html#hello";
myform.attr("action", "page2.html#hello");
myform.get(0).setAttribute("action", "page2.html#hello");
任何建议(假设我必须将方法保持为’get’,并且我必须在URL中使用哈希,并且我必须使用Javascript动态更改此操作)?
解决方法:
在IE8中我自己进行的测试表明它确实坚持哈??希(#hello)位于URL中的查询字符串(?foo = bar)之后.遗憾的是,您的表单并不适合您,并且在提交表单时无法强制执行此操作.
尝试在表单中编码哈希:
<script type="text/javascript">
function changeURL() {
var hidden = document.createElement('input');
hidden.setAttribute("type", "hidden");
hidden.setAttribute("name", "hash");
hidden.setAttribute("value", "hello");
var myform = document.getElementById('myform');
myform.setAttribute("action", "page2.html");
myform.appendChild(hidden);
// return false;
}
</script>
<form id="myform" action="page1.html" method="get" onsubmit="changeURL()">
<input type="submit">
</form>
在page2.html的顶部,将其解压缩出来:
<script type="text/javascript">
var qs = window.location.search.substring(1);
var qsarr = qs.split("&");
for (var i=0; i<qsarr.length; i++) {
var tarr = qsarr[i].split("=");
if (tarr[0]==="hash") {
window.location.hash = tarr[1];
}
}
</script>
内容总结
以上是互联网集市为您收集整理的使用Javascript更改表单操作时IE中的错误,当method = get和URL包含哈希时全部内容,希望文章能够帮你解决使用Javascript更改表单操作时IE中的错误,当method = get和URL包含哈希时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。