4

对于 Internet Explorer 7、8、9 浏览器,C# 的 Request.UrlReferrer 返回 null。它的原因是什么?它的解决方案是什么?

页面上有一些“单击此处”按钮。单击按钮后,将在新选项卡中打开一个新的 url 页面。在打开页面时,我使用 Request.UrlReferrer 将页面的 url 存储在数据库中。

对于其他浏览器,如 Firefox、Chrome 等,它运行良好。但它从未在 Internet Explorer 上运行过。

请帮帮我。

4

3 回答 3

2

在各种情况下,推荐人可以为空。例如,某些隐私设置(政策强制)或插件可以阻止发送引荐来源网址。无论如何,它都是用户输入,你不能信任的东西。

如果你解释你正在尝试做什么以及你使用什么代码,也许可以给出一个实际的答案。

于 2013-10-23T09:28:34.970 回答
1

在 IE8 或更低版本中打开新窗口时,document.location.href在IE9 +、Firefox 或 Chrome 中并非如此。window.openRequest.UrlReferrernull

解决方案是,您曾经在哪里使用过

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;
  }
}

希望以上解决方案能解决问题。

于 2015-04-24T09:55:49.653 回答
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();

我知道这个问题很老了。但也许我的回答会对某人有所帮助。

于 2018-02-05T09:40:13.287 回答