繁体   English   中英

在同一个浏览器窗口中打开新页面,而不影响浏览器历史记录

[英]Open new page in the same broswer window without affecting the browser history

这个问题仅适用于IE7,因为location.replace(strURL)似乎在所有其他主要浏览器中都可以工作。 我尝试执行一些分析js,然后将用户重定向到他们要下载的资源(通常是doc或pdf)的位置。 用户打开一个包含js代码的页面。 跟踪下载后,浏览器应使用以下代码通过将历史记录中的当前页面条目替换为资源URL来使用以下代码加载重新发布URL:

if (IE) {
            window.open(strURL,"_self", true); //doesn't work
            //window.open(strURL,"_self",undefined, true); //doesn't work
            return;
        }

此代码在重定向页面的历史记录中创建条目。 我曾尝试在同一页面上使用iframe,但如果文件为* .doc,则IE会弹出安全警告

有任何想法吗?

我不确定在IE7中是否有避免这种情况的方法。 也许可以采用其他方法。 在重定向之前将分析js注入当前页面,从而避免了完全加载另一个页面的需要。 在这种方法中,您将创建一个新的脚本标签并将其注入到head元素中。 该脚本将在加载时执行,进行分析,然后触发重定向进行下载,作为最后一步(例如)。

function redirectWithAnalytics() {
  var s = document.createElement('script');
  s.src = 'path/to/analytics.js';
  s.type = 'text/javascript';
  document.getElementsByTagName('HEAD')[0].appendChild(s);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM