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

时间:2011-01-06 13:25:52

标签: javascript

问题仅适用于IE7,因为location.replace(strURL)似乎在所有其他主流浏览器中都有效。 我尝试执行一些分析js,然后将用户重定向到他们想要下载的资源(通常是doc或pdf)的位置。 用户打开包含js代码的页面。 跟踪下载后,broswer应使用以下代码加载resurouce 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会弹出安全警告

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不确定是否有办法在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);
}