对于Internet Explorer 7,8,9浏览器,C#的Request.UrlReferrer返回null。它的原因是什么?它的解决方案是什么?
页面上有一些“点击此处”按钮。单击该按钮,将在新选项卡中打开一个新的URL页面。在打开页面时,我使用Request.UrlReferrer将Page的url存储在数据库中。
对于其他浏览器,如Firefox,Chrome等,它运行正常。但它从未在Internet Explorer上运行过。
请帮帮我。
答案 0 :(得分:2)
在各种情况下,引荐来源可以为空。例如,某些隐私设置(按策略进行扩展)或插件可以阻止发送引荐来源。它以任何方式用户输入,是您无法信任的。
如果你解释你想要做什么以及你用什么代码这样做,也许可以给出一个真正的答案。
答案 1 :(得分:1)
在IE8或更低版本中打开window.open
或Request.UrlReferrer
的新窗口时,null
为document.location.href = "/Roles/Index";
,而在IE9 +,Firefox或Chrome中则不是这样。
解决方案是,无论你使用过什么,如
RedirectURL("/Roles/Index");
function RedirectURL(url) {
var a = document.createElement("a");
if (a.click) {
// HTML5 browsers and IE support click() on , early FF does not.
a.setAttribute("href", url);
a.style.display = "none";
document.body.appendChild(a);
a.click();
} else {
// Early FF can, however, use this usual method
// where IE cannot with secure links.
window.location.href = url;
}
}
只需将以下函数复制并粘贴到js文件中并调用该函数即可。
hash_tree = {
<Category id: 1, title: "foo"> => {},
<Category id: 2, title: "bar"> => {
<Category id: 3 title: "baz"> => {
<Category id: 4 title: "qux"> => {}
}
},
<Category id: 5, title: "norf"> => {}
}
希望上述解决方案能够解决问题。
答案 2 :(得分:0)
如果您使用window.open(targetUrl,“_ blank”)函数在新的浏览器选项卡中打开页面,则UrlReferrer对于IE为空 - 实际上对我来说这个问题即使对于IE 11也是可重现的,但不仅适用于旧版本IE浏览器 以下JavaScript代码允许我解决问题:
var link = document.createElement("a");
link.href = targetUrl;
link.target = "_about";
document.body.appendChild(link);
link.click();
我知道这个问题已经过时了。但也许我的回答会帮助别人。