采用JS实现url跳转导致url丢失的问题
2009-06-29 21:23
639 查看
什么是referrer?
referrer 就是来源页面地址,比如你从 http://www.a.com/1.htm” 点某个链接到了 http://www.b.com/2.html,则对于后者而言,它的 referer 就是 http://www.a.com/1.htm”。 http302跳转是可以保持referrer的。在 A 页面上提交登录表单到 B,B 返回一个重定向页面到 C,在 C 处理里面检查 Referer 可知道它的来源是 A 而不是 B。
但是如果用 window.location 或 document.location 做这个跳转就不一样了。假如在 A 页面上执行 window.location = B,如果是 IE 浏览器,会发现 B 页面的 Referer 为空。firefox 倒是可以保持 Referer,不过在 IE 占绝大部分市场份额的中国,必须想办法避免这个影响。
解决方法有两种,一种是模拟a链接,另外一种是模拟表单提交
1.模拟a链接
referrer 就是来源页面地址,比如你从 http://www.a.com/1.htm” 点某个链接到了 http://www.b.com/2.html,则对于后者而言,它的 referer 就是 http://www.a.com/1.htm”。 http302跳转是可以保持referrer的。在 A 页面上提交登录表单到 B,B 返回一个重定向页面到 C,在 C 处理里面检查 Referer 可知道它的来源是 A 而不是 B。
但是如果用 window.location 或 document.location 做这个跳转就不一样了。假如在 A 页面上执行 window.location = B,如果是 IE 浏览器,会发现 B 页面的 Referer 为空。firefox 倒是可以保持 Referer,不过在 IE 占绝大部分市场份额的中国,必须想办法避免这个影响。
解决方法有两种,一种是模拟a链接,另外一种是模拟表单提交
1.模拟a链接
function goTo(url) { var a = document.createElement('a'), b = '_blank', bd = document.body, target = arguments[1]== b ?b:'_self'; if(!a.click) { return window.open(url,target); } a.setAttribute("target",target); a.setAttribute('href', url); a.style.display = 'none'; if(!bd) return ; bd.appendChild(a); a.click(); if (target == b) { setTimeout(function(){ try { bd.removeChild(a); } catch (e) { } }, 500); } }
<input type="button" onclick="goTo('http://www.test.com/3.html','_blank')" value="测试"/>
相关文章推荐
- 用 js 做 URL 跳转带来的 Referer 丢失问题.
- js代码实现根据实际物理地址,进行 URL 跳转,并实现用户自定义 URL 跳转
- js解决弹窗问题实现班级跳转DIV示例
- IE中JS跳转丢失referrer问题的2个解决方法
- 微信小程序——wx.navigateTo中url无法跳转问题(app.json中配置的tabBar与wx.navigateTo中url引用相同页面导致)(2017/12)
- activitygroup的子activity中嵌套webview,利用webview与js交互,在实现js点击的内部类代码中实现activity跳转出现的线程问题
- 为什么返回的数据前面有callback? ashx/json.ashx?的后面加 callback=? 起什么作用 js url?callback=xxx xxx的介绍 ajax 跨域请求时url参数添加callback=?会实现跨域问题
- JS如何实现在页面上快速定位(锚点跳转问题)
- servlet跳转页面导致css,js等失效的问题
- js操作cookie或url导致在java端编码问题
- JS截取井号之前的URL,并实现页面跳转
- js数字位数太大导致参数精度丢失问题
- js用 window.location.href跳转IE和chrome中路径url不一致问题
- 微信小程序:wx.navigateTo中url无法跳转问题(app.json中配置的tabBar与wx.navigateTo中url引用相同页面导致)
- Url带参跳转时,参数部分丢失问题
- webview 笔记二(android和js交互、包括链接跳转常见问题处理,加载监视,拦截Url等)
- JS实现页面跳转参数不丢失的方法
- js跳转url携带参数和传递中文乱码问题
- jquery采用JS实现高度自适应问题
- IE中JS跳转丢失referrer问题的2个解决方法