对于 Internet Explorer 7、8、9 浏览器,C# 的 Request.UrlReferrer 返回 null。它的原因是什么?它的解决方案是什么?
页面上有一些“单击此处”按钮。单击按钮后,将在新选项卡中打开一个新的 url 页面。在打开页面时,我使用 Request.UrlReferrer 将页面的 url 存储在数据库中。
对于其他浏览器,如 Firefox、Chrome 等,它运行良好。但它从未在 Internet Explorer 上运行过。
请帮帮我。
对于 Internet Explorer 7、8、9 浏览器,C# 的 Request.UrlReferrer 返回 null。它的原因是什么?它的解决方案是什么?
页面上有一些“单击此处”按钮。单击按钮后,将在新选项卡中打开一个新的 url 页面。在打开页面时,我使用 Request.UrlReferrer 将页面的 url 存储在数据库中。
对于其他浏览器,如 Firefox、Chrome 等,它运行良好。但它从未在 Internet Explorer 上运行过。
请帮帮我。
在各种情况下,推荐人可以为空。例如,某些隐私设置(政策强制)或插件可以阻止发送引荐来源网址。无论如何,它都是用户输入,你不能信任的东西。
如果你解释你正在尝试做什么以及你使用什么代码,也许可以给出一个实际的答案。
在 IE8 或更低版本中打开新窗口时,document.location.href
在IE9 +、Firefox 或 Chrome 中并非如此。window.open
Request.UrlReferrer
null
解决方案是,您曾经在哪里使用过
document.location.href = "/Roles/Index";
只需将以下函数复制并粘贴到 js 文件中并调用该函数。
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;
}
}
希望以上解决方案能解决问题。
如果您使用 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();
我知道这个问题很老了。但也许我的回答会对某人有所帮助。